From daace35427e74a85e59bc2bf28fc3a6b9f2e91a4 Mon Sep 17 00:00:00 2001 From: Niraj Date: Thu, 27 Mar 2025 18:01:38 +0545 Subject: [PATCH 1/2] fix: update outcome title and learnMore button testId --- .../playwright/lib/pages/outcomesPage.ts | 5 +++++ .../playwright/tests/9-outcomes/outcomes.spec.ts | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/govtool-frontend/playwright/lib/pages/outcomesPage.ts b/tests/govtool-frontend/playwright/lib/pages/outcomesPage.ts index 333b0d1b2..48f333ef6 100644 --- a/tests/govtool-frontend/playwright/lib/pages/outcomesPage.ts +++ b/tests/govtool-frontend/playwright/lib/pages/outcomesPage.ts @@ -11,10 +11,15 @@ export default class OutComesPage { readonly filterBtn = this.page.getByTestId("filters-button"); readonly sortBtn = this.page.getByTestId("sort-button"); readonly showMoreBtn = this.page.getByTestId("show-more-button"); + readonly metadataErrorLearnMoreBtn = this.page.getByTestId( + "metadata-error-learn-more" + ); //inputs readonly searchInput = this.page.getByTestId("search-input"); + readonly title = this.page.getByTestId("single-action-title"); + constructor(private readonly page: Page) {} async goto(params: { filter?: string; sort?: string } = {}): Promise { diff --git a/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts b/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts index 2a5b79b74..b889c7515 100644 --- a/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts +++ b/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts @@ -152,7 +152,9 @@ test.describe("Outcome details dependent test", () => { const title = await outcomeCard .locator('[data-testid$="-card-title"]') .textContent(); - expect(title.toLowerCase()).toContain(governanceActionTitle.toLowerCase()); + expect(title.toLowerCase()).toContain( + governanceActionTitle.toLowerCase() + ); } }, { name: "search by title" } @@ -434,10 +436,8 @@ test.describe("Invalid Outcome Metadata", () => { await outcomePage.goto(); await outcomePage.viewFirstOutcomes(); - await expect(page.getByRole("heading", { name: type })).toBeVisible({ - timeout: 60_000, - }); - await expect(page.getByText("Learn more")).toBeVisible(); + await expect(outcomePage.title).toHaveText(type, { timeout: 60_000 }); + await expect(outcomePage.metadataErrorLearnMoreBtn).toBeVisible(); }); }); }); From 3524523e2871884fb94fbd97ff229ceb6adc00f0 Mon Sep 17 00:00:00 2001 From: Niraj Date: Thu, 27 Mar 2025 18:20:25 +0545 Subject: [PATCH 2/2] chore: add proper message for metadata invalid test failure with url and hash --- .../4-proposal-visibility/proposalVisibility.spec.ts | 12 +++++++++--- .../playwright/tests/9-outcomes/outcomes.spec.ts | 12 ++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/4-proposal-visibility/proposalVisibility.spec.ts b/tests/govtool-frontend/playwright/tests/4-proposal-visibility/proposalVisibility.spec.ts index 999a38f2a..9447e2906 100644 --- a/tests/govtool-frontend/playwright/tests/4-proposal-visibility/proposalVisibility.spec.ts +++ b/tests/govtool-frontend/playwright/tests/4-proposal-visibility/proposalVisibility.spec.ts @@ -324,9 +324,15 @@ test.describe("Invalid Live voting Metadata", () => { await governanceActionPage.goto(); await governanceActionPage.viewFirstProposal(); - await expect(page.getByRole("heading", { name: type })).toBeVisible({ - timeout: 60_000, - }); + const governanceActionTitle = await page + .getByTestId("governance-action-details-card-header") + .textContent(); + + await expect( + page.getByTestId("governance-action-details-card-header"), + governanceActionTitle.toLowerCase() !== type.toLowerCase() && + `The URL "${url}" and hash "${hash}" do not match the expected properties for type "${type}".` + ).toHaveText(type, { timeout: 60_000, ignoreCase: true }); await expect(page.getByText("Learn more")).toBeVisible(); await expect(page.getByTestId("external-modal-button")).toBeVisible(); }); diff --git a/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts b/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts index b889c7515..9af13f8f5 100644 --- a/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts +++ b/tests/govtool-frontend/playwright/tests/9-outcomes/outcomes.spec.ts @@ -435,8 +435,16 @@ test.describe("Invalid Outcome Metadata", () => { const outcomePage = new OutComesPage(page); await outcomePage.goto(); await outcomePage.viewFirstOutcomes(); - - await expect(outcomePage.title).toHaveText(type, { timeout: 60_000 }); + const outcomeTitle = await outcomePage.title.textContent(); + + await expect( + outcomePage.title, + outcomeTitle.toLowerCase() !== type.toLowerCase() && + `The URL "${url}" and hash "${hash}" do not match the expected properties for type "${type}".` + ).toHaveText(type, { + ignoreCase: true, + timeout: 60_000, + }); await expect(outcomePage.metadataErrorLearnMoreBtn).toBeVisible(); }); });