From 5d331c38000323b7dbb55ee2117d009d46438020 Mon Sep 17 00:00:00 2001 From: Marc Date: Sun, 20 Nov 2022 13:56:27 -0800 Subject: [PATCH] added for loops to tests --- source/assets/scripts/main.e2e.test.js | 411 +++++++++++++------------ 1 file changed, 217 insertions(+), 194 deletions(-) diff --git a/source/assets/scripts/main.e2e.test.js b/source/assets/scripts/main.e2e.test.js index ad177c9..339e93d 100644 --- a/source/assets/scripts/main.e2e.test.js +++ b/source/assets/scripts/main.e2e.test.js @@ -39,206 +39,229 @@ describe("test App end to end", async () => { describe("test CRUD on simple inputs and default image", () => { - describe("test create 1 new review", async () => { - it("create 1 new review", async () => { - // Click the button to create a new review - let create_btn = await page.$("#create-btn"); - await create_btn.click(); - await page.waitForNavigation(); + describe("test create 10 new reviews", async () => { - // create a new review - let review = { - imgAlt: "sample alt", - mealName: "sample name", - comments: "sample comment", - restaurant: "sample restaurant", - tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], - rating: 1 - } - await setReviewForm(page, review); + for (var i=0; i < 10; i++) { - // Click the save button to save updates - let save_btn = await page.$("#save-btn"); - await save_btn.click(); - await page.waitForNavigation(); - }); + it("create 1 new review", async () => { - it("check details page", async () => { - // check the details page for correctness - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "sample alt", - mealName: "sample name", - comments: "sample comment", - restaurant: "sample restaurant", - tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], - rating: "http://localhost:8080/assets/images/icons/1-star.svg" - } - await checkCorrectness(page, "d", expected); - }); - - it("check home page", async () => { - // Click the button to return to the home page - let home_btn = await page.$("#home-btn"); - home_btn.click(); - await page.waitForNavigation(); - - // Get the review card again and get its shadowRoot - let review_card = await page.$("review-card"); - let shadowRoot = await review_card.getProperty("shadowRoot"); - - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "sample alt", - mealName: "sample name", - comments: "sample comment", - restaurant: "sample restaurant", - tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], - rating: "http://localhost:8080/assets/images/icons/1-star.svg" - } - await checkCorrectness(shadowRoot, "a", expected); - }); - }); - - describe("test read 1 review after refresh", async () => { - it("refresh page", async () => { - // Reload the page - await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] }); - }); - - it("check details page", async () => { - // click review card - let review_card = await page.$("review-card"); - await review_card.click(); - await page.waitForNavigation(); - - // check the details page for correctness - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "sample alt", - mealName: "sample name", - comments: "sample comment", - restaurant: "sample restaurant", - tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], - rating: "http://localhost:8080/assets/images/icons/1-star.svg" - } - await checkCorrectness(page, "d", expected); - }); - - it("check home page", async () => { - // Click the button to return to the home page - let home_btn = await page.$("#home-btn"); - home_btn.click(); - await page.waitForNavigation(); - - // Get the review card again and get its shadowRoot - let review_card = await page.$("review-card"); - let shadowRoot = await review_card.getProperty("shadowRoot"); - - // check the details page for correctness - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "sample alt", - mealName: "sample name", - comments: "sample comment", - restaurant: "sample restaurant", - tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], - rating: "http://localhost:8080/assets/images/icons/1-star.svg" - } - await checkCorrectness(shadowRoot, "a", expected); - }); - }); - - describe("test update 1 review", async () => { - - it("update 1 review", async () => { - - // Get the only review card and click it - let review_card = await page.$("review-card"); - await review_card.click(); - await page.waitForNavigation(); - - // Click the button to show update form - let update_btn = await page.$("#update-btn"); - await update_btn.click(); - - // create a new review - let review = { - imgAlt: "updated alt", - mealName: "updated name", - comments: "updated comment", - restaurant: "updated restaurant", - tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], - rating: 5 - } - await setReviewForm(page, review); - - // Click the save button to save updates - let save_btn = await page.$("#save-btn"); - await save_btn.click(); - await page.waitForNavigation(); - }); - - it("check details page", async () => { - // check the details page for correctness - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "updated alt", - mealName: "updated name", - comments: "updated comment", - restaurant: "updated restaurant", - tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], - rating: "http://localhost:8080/assets/images/icons/5-star.svg" - } - await checkCorrectness(page, "d", expected); - }); - - it("check home page", async () => { - // Click the button to return to the home page - let home_btn = await page.$("#home-btn"); - home_btn.click(); - await page.waitForNavigation(); - - // Get the review card again and get its shadowRoot - let review_card = await page.$("review-card"); - let shadowRoot = await review_card.getProperty("shadowRoot"); - - // check the details page for correctness - let expected = { - imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", - imgAlt: "updated alt", - mealName: "updated name", - comments: "updated comment", - restaurant: "updated restaurant", - tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], - rating: "http://localhost:8080/assets/images/icons/5-star.svg" - } - await checkCorrectness(shadowRoot, "a", expected); - }); - - }); - - describe("test delete 1 review", async () => { - it("delete 1 review", async () => { - // Get the only review card and click it - let review_card = await page.$("review-card"); - await review_card.click(); - await page.waitForNavigation(); - - page.on('dialog', async dialog => { - console.log(dialog.message()); - await dialog.accept(); + // Click the button to create a new review + let create_btn = await page.$("#create-btn"); + await create_btn.click(); + await page.waitForNavigation(); + + // create a new review + let review = { + imgAlt: "sample alt", + mealName: "sample name", + comments: "sample comment", + restaurant: "sample restaurant", + tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], + rating: 1 + } + + await setReviewForm(page, review); + + // Click the save button to save updates + let save_btn = await page.$("#save-btn"); + await save_btn.click(); + await page.waitForNavigation(); + }); + + it("check details page", async () => { + // check the details page for correctness + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "sample alt", + mealName: "sample name", + comments: "sample comment", + restaurant: "sample restaurant", + tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], + rating: "http://localhost:8080/assets/images/icons/1-star.svg" + } + await checkCorrectness(page, "d", expected); + }); + + it("check home page", async () => { + // Click the button to return to the home page + let home_btn = await page.$("#home-btn"); + home_btn.click(); + await page.waitForNavigation(); + + // Get the review card again and get its shadowRoot + let review_card = await page.$("review-card"); + let shadowRoot = await review_card.getProperty("shadowRoot"); + + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "sample alt", + mealName: "sample name", + comments: "sample comment", + restaurant: "sample restaurant", + tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], + rating: "http://localhost:8080/assets/images/icons/1-star.svg" + } + await checkCorrectness(shadowRoot, "a", expected); }); - // Get the delete button and click it - let delete_btn = await page.$("#delete-btn"); - await delete_btn.click(); - await page.waitForNavigation(); + } - // Check that the card was correctly removed (there should be no remaining cards) - review_card = await page.$("#review-card"); - assert.strictEqual(review_card, null); - }); + }); + + describe("test read 10 reviews after refresh", async () => { + + for (var i=0; i < 10; i++) { + + it("refresh page", async () => { + // Reload the page + await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] }); + }); + + it("check details page", async () => { + // click review card + let review_card = await page.$("review-card"); + await review_card.click(); + await page.waitForNavigation(); + + // check the details page for correctness + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "sample alt", + mealName: "sample name", + comments: "sample comment", + restaurant: "sample restaurant", + tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], + rating: "http://localhost:8080/assets/images/icons/1-star.svg" + } + await checkCorrectness(page, "d", expected); + }); + + it("check home page", async () => { + // Click the button to return to the home page + let home_btn = await page.$("#home-btn"); + home_btn.click(); + await page.waitForNavigation(); + + // Get the review card again and get its shadowRoot + let review_card = await page.$("review-card"); + let shadowRoot = await review_card.getProperty("shadowRoot"); + + // check the details page for correctness + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "sample alt", + mealName: "sample name", + comments: "sample comment", + restaurant: "sample restaurant", + tags: ["tag 0", "tag 1", "tag 2", "tag 3", "tag 4"], + rating: "http://localhost:8080/assets/images/icons/1-star.svg" + } + await checkCorrectness(shadowRoot, "a", expected); + }); + + } + + }); + + describe("test update 10 reviews", async () => { + + for (var i=0; i < 10; i++) { + + it("update 1 review", async () => { + + // Get the only review card and click it + let review_card = await page.$("review-card"); + await review_card.click(); + await page.waitForNavigation(); + + // Click the button to show update form + let update_btn = await page.$("#update-btn"); + await update_btn.click(); + + // create a new review + let review = { + imgAlt: "updated alt", + mealName: "updated name", + comments: "updated comment", + restaurant: "updated restaurant", + tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], + rating: 5 + } + await setReviewForm(page, review); + + // Click the save button to save updates + let save_btn = await page.$("#save-btn"); + await save_btn.click(); + await page.waitForNavigation(); + }); + + it("check details page", async () => { + // check the details page for correctness + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "updated alt", + mealName: "updated name", + comments: "updated comment", + restaurant: "updated restaurant", + tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], + rating: "http://localhost:8080/assets/images/icons/5-star.svg" + } + await checkCorrectness(page, "d", expected); + }); + + it("check home page", async () => { + // Click the button to return to the home page + let home_btn = await page.$("#home-btn"); + home_btn.click(); + await page.waitForNavigation(); + + // Get the review card again and get its shadowRoot + let review_card = await page.$("review-card"); + let shadowRoot = await review_card.getProperty("shadowRoot"); + + // check the details page for correctness + let expected = { + imgSrc: "http://localhost:8080/assets/images/icons/plate_with_cutlery.png", + imgAlt: "updated alt", + mealName: "updated name", + comments: "updated comment", + restaurant: "updated restaurant", + tags: ["tag -0", "tag -1", "tag -2", "tag -3", "tag -4", "tag -5"], + rating: "http://localhost:8080/assets/images/icons/5-star.svg" + } + await checkCorrectness(shadowRoot, "a", expected); + }); + + } + + }); + + describe("test delete 10 reviews", async () => { + + for (var i=0; i < 10; i++) { + + it("delete 1 review", async () => { + // Get the only review card and click it + let review_card = await page.$("review-card"); + await review_card.click(); + await page.waitForNavigation(); + + page.on('dialog', async dialog => { + console.log(dialog.message()); + await dialog.accept(); + }); + + // Get the delete button and click it + let delete_btn = await page.$("#delete-btn"); + await delete_btn.click(); + await page.waitForNavigation(); + + // Check that the card was correctly removed (there should be no remaining cards) + review_card = await page.$("#review-card"); + assert.strictEqual(review_card, null); + }); + + } }); });