record meals that were added to list, allow delete with ingredients
This commit is contained in:
@@ -52,3 +52,47 @@ test("the add-meal picker closes when clicking outside", async ({ page }) => {
|
||||
await page.mouse.click(10, 10);
|
||||
await expect(picker).toHaveCount(0);
|
||||
});
|
||||
|
||||
test("a meal added to a list is shown in the meals panel", async ({ page }) => {
|
||||
await registerAndLogin(page, "alice@example.com");
|
||||
await createMealWithIngredients(page, "Spaghetti Bolognese", [
|
||||
{ name: "Penne", quantity: "500g" },
|
||||
{ name: "Tomato", quantity: "2" },
|
||||
]);
|
||||
await createList(page, "Weekly shop");
|
||||
|
||||
await page.click(".add-meal-button");
|
||||
const picker = page.locator(".meal-picker-backdrop");
|
||||
await picker.locator(".meal-picker-button").filter({ hasText: "Spaghetti Bolognese" }).click();
|
||||
|
||||
// The meal appears in the "Meals on this list" panel.
|
||||
const panel = page.locator("#list-meals-panel");
|
||||
await expect(panel).toBeVisible();
|
||||
await expect(panel.locator(".list-meal-row").filter({ hasText: "Spaghetti Bolognese" })).toBeVisible();
|
||||
});
|
||||
|
||||
test("removing a meal from a list removes its ingredients", async ({ page }) => {
|
||||
await registerAndLogin(page, "alice@example.com");
|
||||
await createMealWithIngredients(page, "Spaghetti Bolognese", [
|
||||
{ name: "Penne", quantity: "500g" },
|
||||
{ name: "Tomato", quantity: "2" },
|
||||
]);
|
||||
await createList(page, "Weekly shop");
|
||||
|
||||
await page.click(".add-meal-button");
|
||||
const picker = page.locator(".meal-picker-backdrop");
|
||||
await picker.locator(".meal-picker-button").filter({ hasText: "Spaghetti Bolognese" }).click();
|
||||
|
||||
await expect(page.locator(".item-row").filter({ hasText: "Penne" })).toBeVisible();
|
||||
await expect(page.locator(".item-row").filter({ hasText: "Tomato" })).toBeVisible();
|
||||
|
||||
// Remove the meal from the list.
|
||||
const panel = page.locator("#list-meals-panel");
|
||||
const row = panel.locator(".list-meal-row").filter({ hasText: "Spaghetti Bolognese" });
|
||||
await row.locator(".list-meal-remove-button").click();
|
||||
|
||||
// The meal's ingredients are removed from the list.
|
||||
await expect(page.locator(".item-row").filter({ hasText: "Penne" })).toHaveCount(0);
|
||||
await expect(page.locator(".item-row").filter({ hasText: "Tomato" })).toHaveCount(0);
|
||||
await expect(row).toHaveCount(0);
|
||||
});
|
||||
|
||||
@@ -84,6 +84,8 @@ test("a user can add a category", async ({ page }) => {
|
||||
await registerAndLogin(page, "alice@example.com");
|
||||
await createList(page, "Weekly shop");
|
||||
|
||||
// Categories are managed from the main lists page.
|
||||
await page.goto("/lists");
|
||||
await page.fill("#category-name", "Bakery");
|
||||
await page.click("#add-category-button");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user