From f1f4621e73ddd26a98d439090cd38506bc78eaa5 Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 14:57:14 +0545 Subject: [PATCH 1/7] feat: add proposal submission authentication setup --- .../playwright/lib/constants/auth.ts | 2 ++ .../playwright/lib/walletManager.ts | 7 ++++++ .../proposal-submission.ga.auth.setup.ts | 24 +++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 tests/govtool-frontend/playwright/tests/proposal-submission.ga.auth.setup.ts diff --git a/tests/govtool-frontend/playwright/lib/constants/auth.ts b/tests/govtool-frontend/playwright/lib/constants/auth.ts index b853b7c2b..5b18819e5 100644 --- a/tests/govtool-frontend/playwright/lib/constants/auth.ts +++ b/tests/govtool-frontend/playwright/lib/constants/auth.ts @@ -21,6 +21,8 @@ export const proposal07AuthFile = ".auth/proposal07.json"; export const proposal08AuthFile = ".auth/proposal08.json"; export const proposal09AuthFile = ".auth/proposal09.json"; +export const proposalSubmissionAuthFile = ".auth/proposalSubmission.json"; + export const budgetProposal01AuthFile = ".auth/budgetProposal01.json"; export const budgetProposal02AuthFile = ".auth/budgetProposal02.json"; export const budgetProposal03AuthFile = ".auth/budgetProposal03.json"; diff --git a/tests/govtool-frontend/playwright/lib/walletManager.ts b/tests/govtool-frontend/playwright/lib/walletManager.ts index ad6401b5c..53192e886 100644 --- a/tests/govtool-frontend/playwright/lib/walletManager.ts +++ b/tests/govtool-frontend/playwright/lib/walletManager.ts @@ -42,6 +42,13 @@ class WalletManager { ); await this.writeWallets(updatedWallets, purpose); } + async getFirstWalletByPurpose(purpose: Purpose): Promise { + const wallets = await this.readWallets(purpose); + if (wallets.length === 0) { + throw new Error(`No wallets found for purpose: ${purpose}`); + } + return wallets[0]; + } async popWallet(purpose: Purpose): Promise { const popCb = async () => { diff --git a/tests/govtool-frontend/playwright/tests/proposal-submission.ga.auth.setup.ts b/tests/govtool-frontend/playwright/tests/proposal-submission.ga.auth.setup.ts new file mode 100644 index 000000000..171a2c20f --- /dev/null +++ b/tests/govtool-frontend/playwright/tests/proposal-submission.ga.auth.setup.ts @@ -0,0 +1,24 @@ +import { setAllureEpic, setAllureStory } from "@helpers/allure"; +import { test as setup } from "@fixtures/walletExtension"; +import { createAuthWithUserName } from "@helpers/auth"; +import walletManager from "lib/walletManager"; +import { proposalSubmissionAuthFile } from "@constants/auth"; + +setup.beforeEach(async () => { + await setAllureEpic("Setup"); + await setAllureStory("Authentication"); +}); + +setup( + `Create auth for proposal submission balance dependent test`, + async ({ page, context }) => { + const proposalSubmissionWallet = + await walletManager.getFirstWalletByPurpose("proposalSubmissionCopy"); + await createAuthWithUserName({ + page, + context, + wallet: proposalSubmissionWallet, + auth: proposalSubmissionAuthFile, + }); + } +); From a274f1ad22c8b5c90ce432e54f1ddb8b10d255d5 Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 14:58:51 +0545 Subject: [PATCH 2/7] chore: move balance dependent test to proposal submission tests with wallet setup --- .../playwright/lib/helpers/page.ts | 11 +++ .../lib/pages/proposalSubmissionPage.ts | 4 + .../proposalSubmission.ga.spec.ts | 97 ++++++++++++++++++- .../playwright/tests/proposal.setup.ts | 2 +- 4 files changed, 110 insertions(+), 4 deletions(-) diff --git a/tests/govtool-frontend/playwright/lib/helpers/page.ts b/tests/govtool-frontend/playwright/lib/helpers/page.ts index d63af0711..eea8361a6 100644 --- a/tests/govtool-frontend/playwright/lib/helpers/page.ts +++ b/tests/govtool-frontend/playwright/lib/helpers/page.ts @@ -3,6 +3,7 @@ import loadDemosExtension from "@fixtures/loadExtension"; import { Browser, ConsoleMessage, Page } from "@playwright/test"; import { StaticWallet } from "@types"; import { Logger } from "./logger"; +import kuberService from "@services/kuberService"; interface NewPageConfig { storageState?: string; @@ -48,3 +49,13 @@ export function injectLogger(page: Page) { page.isLoggerInjected = true; } } + +export async function logWalletDetails(address: string) { + try { + const balance = await kuberService.getBalance(address); + console.log("wallet balance", balance); + } catch (error) { + console.log("failed to get balance", error); + } + console.log("wallet address", address); +} diff --git a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts index 0c3d7cc09..1ceb85d65 100644 --- a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts +++ b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts @@ -126,6 +126,10 @@ export default class ProposalSubmissionPage { constructor(private readonly page: Page) {} + get currentPage(): Page { + return this.page; + } + async goto() { await this.page.goto(`${environments.frontendUrl}/proposal_discussion`); diff --git a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts index 8e181bf1f..a0e3e3b7d 100644 --- a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts +++ b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts @@ -2,7 +2,7 @@ import environments from "@constants/environments"; import { createTempUserAuth } from "@datafactory/createAuth"; import { test } from "@fixtures/proposal"; import { setAllureEpic } from "@helpers/allure"; -import { createNewPageWithWallet } from "@helpers/page"; +import { createNewPageWithWallet, logWalletDetails } from "@helpers/page"; import { waitForTxConfirmation } from "@helpers/transaction"; import ProposalDiscussionPage from "@pages/proposalDiscussionPage"; import ProposalSubmissionPage from "@pages/proposalSubmissionPage"; @@ -13,9 +13,12 @@ import { } from "@helpers/cardano"; import { ProposalType } from "@types"; import walletManager from "lib/walletManager"; -import { valid } from "@mock/index"; +import { valid as mockValid, invalid as mockInvalid } from "@mock/index"; import { rewardAddressBech32 } from "@helpers/shellyWallet"; import { getWalletConfigForFaucet } from "@helpers/index"; +import { faker } from "@faker-js/faker"; +import { proposalSubmissionAuthFile } from "@constants/auth"; +import ProposalDiscussionDetailsPage from "@pages/proposalDiscussionDetailsPage"; test.beforeEach(async () => { await setAllureEpic("7. Proposal submission"); @@ -31,6 +34,7 @@ Object.values(ProposalType).forEach((proposalType, index) => { test.setTimeout(testInfo.timeout + environments.txTimeOut); const wallet = await walletManager.popWallet("proposalSubmission"); + await logWalletDetails(wallet.address); const tempUserAuth = await createTempUserAuth(page, wallet); @@ -42,7 +46,7 @@ Object.values(ProposalType).forEach((proposalType, index) => { const proposalDiscussionPage = new ProposalDiscussionPage(userPage); await proposalDiscussionPage.goto(); await proposalDiscussionPage.verifyIdentityBtn.click(); - await proposalDiscussionPage.setUsername(valid.username()); + await proposalDiscussionPage.setUsername(mockValid.username()); const proposalSubmissionPage = new ProposalSubmissionPage(userPage); await proposalSubmissionPage.proposalCreateBtn.click(); @@ -72,3 +76,90 @@ Object.values(ProposalType).forEach((proposalType, index) => { await waitForTxConfirmation(userPage); }); }); + +test.describe("Proposed as a governance action", async () => { + let proposalSubmissionPage: ProposalSubmissionPage; + let proposalDiscussionDetailPage: ProposalDiscussionDetailsPage; + let proposalId: number; + + test.beforeEach(async ({ browser }) => { + const proposalSubmissionWallet = + await walletManager.getFirstWalletByPurpose("proposalSubmissionCopy"); + await logWalletDetails(proposalSubmissionWallet.address); + + const page = await createNewPageWithWallet(browser, { + storageState: proposalSubmissionAuthFile, + wallet: proposalSubmissionWallet, + }); + + proposalSubmissionPage = new ProposalSubmissionPage(page); + await proposalSubmissionPage.goto(); + + proposalDiscussionDetailPage = new ProposalDiscussionDetailsPage(page); + + const rewardAddress = rewardAddressBech32( + environments.networkId, + getWalletConfigForFaucet().stake.pkh + ); + + proposalId = await proposalSubmissionPage.createProposal(rewardAddress); + await proposalDiscussionDetailPage.submitAsGABtn.click(); + await proposalSubmissionPage.currentPage + .getByTestId("agree-checkbox") + .click(); + await proposalSubmissionPage.continueBtn.click(); + }); + + test.afterEach(async () => { + // cleanup + await proposalDiscussionDetailPage.goto(proposalId); + await proposalDiscussionDetailPage.deleteProposal(); + }); + + test.describe("Metadata anchor validation", () => { + test("7J_1. Should accept valid metadata anchor on proposal submission", async () => { + test.slow(); // Brute-force testing with 50 random data + for (let i = 0; i < 50; i++) { + await proposalSubmissionPage.metadataUrlInput.fill(mockValid.url()); + await expect( + proposalSubmissionPage.currentPage.getByTestId("url-input-error-text") + ).toBeHidden(); + } + }); + + test("7J_2. Should reject invalid metadata anchor on proposal submission", async () => { + test.slow(); // Brute-force testing with 50 random data + for (let i = 0; i < 50; i++) { + await proposalSubmissionPage.metadataUrlInput.fill( + mockInvalid.url(false) + ); + await expect( + proposalSubmissionPage.currentPage.getByTestId("url-input-error-text") + ).toBeVisible(); + } + + const sentenceWithoutSpace = faker.lorem + .sentence(128) + .replace(/[\s.]/g, ""); + const metadataAnchorGreaterThan128Bytes = + faker.internet.url({ appendSlash: true }) + sentenceWithoutSpace; + + await proposalSubmissionPage.metadataUrlInput.fill( + metadataAnchorGreaterThan128Bytes + ); + + await expect( + proposalSubmissionPage.currentPage.getByTestId("url-input-error-text") + ).toBeVisible(); // BUG better to add different test id compare to invalid url testid + }); + }); + + test("7K. Should reject invalid proposal metadata", async () => { + await proposalSubmissionPage.metadataUrlInput.fill(faker.internet.url()); + await proposalSubmissionPage.submitBtn.click(); + + await expect( + proposalSubmissionPage.currentPage.getByTestId("url-error-modal-title") + ).toHaveText(/the url you entered cannot be found/i); + }); +}); diff --git a/tests/govtool-frontend/playwright/tests/proposal.setup.ts b/tests/govtool-frontend/playwright/tests/proposal.setup.ts index d9511b483..4a44b621c 100644 --- a/tests/govtool-frontend/playwright/tests/proposal.setup.ts +++ b/tests/govtool-frontend/playwright/tests/proposal.setup.ts @@ -9,7 +9,7 @@ import walletManager from "lib/walletManager"; import { functionWaitedAssert } from "@helpers/waitedLoop"; import { getWalletConfigForFaucet } from "@helpers/index"; -const PROPOSAL_WALLETS_COUNT = 4; +const PROPOSAL_WALLETS_COUNT = 5; let govActionDeposit: number; From 17481f5e47ad8c8250653f0be7370dcc9563ae43 Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 15:00:49 +0545 Subject: [PATCH 3/7] test: prompt for insufficient balance when balance is low --- .../proposalSubmission.loggedin.pd.spec.ts | 75 +++++-------------- 1 file changed, 17 insertions(+), 58 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.pd.spec.ts b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.pd.spec.ts index f4b0bdf36..d7126799a 100644 --- a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.pd.spec.ts +++ b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.pd.spec.ts @@ -306,66 +306,25 @@ test.describe("Proposal created logged state", () => { }); }); - test.describe("Proposed as a governance action", () => { - let proposalSubmissionPage: ProposalSubmissionPage; - test.beforeEach(async ({ page, proposalId }) => { - const proposalDiscussionDetailsPage = new ProposalDiscussionDetailsPage( - page - ); - await proposalDiscussionDetailsPage.goto(proposalId); - - await proposalDiscussionDetailsPage.verifyIdentityBtn.click(); - await proposalDiscussionDetailsPage.submitAsGABtn.click(); - - proposalSubmissionPage = new ProposalSubmissionPage(page); - await page.getByTestId("agree-checkbox").click(); - await proposalSubmissionPage.continueBtn.click(); - }); - - test.describe("Metadata anchor validation", () => { - test("7J_1. Should accept valid metadata anchor on proposal submission", async ({ - page, - }) => { - test.slow(); // Brute-force testing with 100 random data - for (let i = 0; i < 50; i++) { - await proposalSubmissionPage.metadataUrlInput.fill(mockValid.url()); - await expect(page.getByTestId("url-input-error-text")).toBeHidden(); - } - }); - - test("7J_2. Should reject invalid metadata anchor on proposal submission", async ({ - page, - }) => { - test.slow(); // Brute-force testing with 100 random data - for (let i = 0; i < 50; i++) { - await proposalSubmissionPage.metadataUrlInput.fill( - invalid.url(false) - ); - await expect(page.getByTestId("url-input-error-text")).toBeVisible(); - } - - const sentenceWithoutSpace = faker.lorem - .sentence(128) - .replace(/[\s.]/g, ""); - const metadataAnchorGreaterThan128Bytes = - faker.internet.url({ appendSlash: true }) + sentenceWithoutSpace; - - await proposalSubmissionPage.metadataUrlInput.fill( - metadataAnchorGreaterThan128Bytes - ); - - await expect(page.getByTestId("url-input-error-text")).toBeVisible(); // BUG better to add different test id compare to invalid url testid - }); - }); + test("7O. Should display insufficient balance modal when submitting proposal with insufficient funds", async ({ + page, + proposalId, + }) => { + const proposalDiscussionDetailsPage = new ProposalDiscussionDetailsPage( + page + ); + await proposalDiscussionDetailsPage.goto(proposalId); - test("7K. Should reject invalid proposal metadata", async ({ page }) => { - await proposalSubmissionPage.metadataUrlInput.fill(faker.internet.url()); - await proposalSubmissionPage.submitBtn.click(); + await proposalDiscussionDetailsPage.verifyIdentityBtn.click(); + await proposalDiscussionDetailsPage.submitAsGABtn.click(); - await expect(page.getByTestId("url-error-modal-title")).toHaveText( - /the url you entered cannot be found/i - ); - }); + const proposalSubmissionPage = new ProposalSubmissionPage(page); + await expect( + proposalSubmissionPage.currentPage.getByText( + "Insufficient wallet balance", + { exact: true } + ) + ).toBeVisible(); // BUG missing test id }); }); From b68f080da329b293d114b0525f9d36f025346f3c Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 15:01:33 +0545 Subject: [PATCH 4/7] chore: update project structure and architecture for proposal discussion --- tests/govtool-frontend/playwright/README.md | 4 ++-- .../playwright/docs/proposal-discussion.png | Bin 39565 -> 45008 bytes .../playwright/playwright.config.ts | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/govtool-frontend/playwright/README.md b/tests/govtool-frontend/playwright/README.md index 3dea35622..deb18fae4 100644 --- a/tests/govtool-frontend/playwright/README.md +++ b/tests/govtool-frontend/playwright/README.md @@ -174,7 +174,7 @@ npm run generate-wallets ### 🔁 Run All Tests -- **Pre-requisite**: Ensure the faucet address holds at least **412,000 ADA**. +- **Pre-requisite**: Ensure the faucet address holds at least **512,000 ADA**. #### 🖥️ UI Mode @@ -270,7 +270,7 @@ npm run test:headless:proposal-pillar #### 5. **Proposal Discussion** -- **Pre-requisite**: Ensure the faucet address holds at least **401,000 ADA**. +- **Pre-requisite**: Ensure the faucet address holds at least **501,000 ADA**. #### 🖥️ UI Mode diff --git a/tests/govtool-frontend/playwright/docs/proposal-discussion.png b/tests/govtool-frontend/playwright/docs/proposal-discussion.png index 70e72a7bee74f524dbfaef01298076147c5a3b31..f0e8179cc2cc2ade8d149cb86183d1ab75a98917 100644 GIT binary patch literal 45008 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∨1BtNy+*UGGp7*zux@%XqTI{ZSv{WD%i7 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,N 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 R`~}$H$4H+>snm6e`5$$bAkzQ< literal 39565 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%0A%~&pIQ0Vk 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 diff --git a/tests/govtool-frontend/playwright/playwright.config.ts b/tests/govtool-frontend/playwright/playwright.config.ts index cc14955aa..4e8757478 100644 --- a/tests/govtool-frontend/playwright/playwright.config.ts +++ b/tests/govtool-frontend/playwright/playwright.config.ts @@ -72,6 +72,12 @@ export default defineConfig({ testMatch: "**/proposal-budget.auth.setup.ts", teardown: environments.ci && "cleanup faucet", }, + { + name: "proposal submission ga auth setup", + testMatch: "**/proposal-submission.ga.auth.setup.ts", + dependencies: environments.ci ? ["proposal setup"] : [], + teardown: environments.ci && "cleanup faucet", + }, { name: "dRep setup", testMatch: "**/dRep.setup.ts", @@ -112,7 +118,7 @@ export default defineConfig({ use: { ...devices["Desktop Chrome"] }, testMatch: "**/*.ga.spec.ts", dependencies: environments.ci - ? ["proposal setup"] + ? ["proposal submission ga auth setup"] : [], teardown: environments.ci && "cleanup artifacts", }, From 81057b80177dee5de79c1e0c788aae1a789bca46 Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 15:25:45 +0545 Subject: [PATCH 5/7] fix: reply testId --- .../tests/11-proposal-budget/proposalBudget.loggedin.pb.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.loggedin.pb.spec.ts b/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.loggedin.pb.spec.ts index 12c1ba5be..d8747f469 100644 --- a/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.loggedin.pb.spec.ts +++ b/tests/govtool-frontend/playwright/tests/11-proposal-budget/proposalBudget.loggedin.pb.spec.ts @@ -67,7 +67,7 @@ test.describe("Budget proposal logged in state", () => { await budgetDiscussionDetailsPage.replyComment(randReply); const replyRendered = await budgetDiscussionDetailsPage.currentPage - .locator(`[data-testid^="reply-"][data-testid$="-content"]`) + .locator(`[data-testid^="subcomment-"][data-testid$="-content"]`) .textContent(); expect(replyRendered).toContain(randReply); }); From 08386b27cf465fbe47d2cf1226cd08fa3a031608 Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 15:27:19 +0545 Subject: [PATCH 6/7] chore: move 8U test to 7P as it is balance dependent test --- .../proposalSubmission.ga.spec.ts | 38 +++++++++++++++++++ .../proposalDiscussion.loggedin.pd.spec.ts | 32 ---------------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts index a0e3e3b7d..53efc3d73 100644 --- a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts +++ b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts @@ -162,4 +162,42 @@ test.describe("Proposed as a governance action", async () => { proposalSubmissionPage.currentPage.getByTestId("url-error-modal-title") ).toHaveText(/the url you entered cannot be found/i); }); + + test("7P. Should navigate to the edit proposal page when 'goto data edit screen' is selected if data does not match the anchor URL", async () => { + const invalidMetadataAnchorUrl = "https://www.google.com"; + + await proposalSubmissionPage.metadataUrlInput.fill( + invalidMetadataAnchorUrl + ); + await proposalSubmissionPage.submitBtn.click(); + + await expect( + proposalSubmissionPage.currentPage.getByTestId("data-not-match-modal") + ).toBeVisible(); + await expect( + proposalSubmissionPage.currentPage.getByTestId( + "data-not-match-modal-go-to-data-button" + ) + ).toBeVisible(); + + await proposalSubmissionPage.currentPage + .getByTestId("data-not-match-modal-go-to-data-button") + .click(); + + await expect( + proposalSubmissionPage.currentPage.getByTestId("governance-action-type") + ).toBeVisible(); + await expect( + proposalSubmissionPage.currentPage.getByTestId("title-input") + ).toBeVisible(); + await expect( + proposalSubmissionPage.currentPage.getByTestId("abstract-input") + ).toBeVisible(); + await expect( + proposalSubmissionPage.currentPage.getByTestId("motivation-input") + ).toBeVisible(); + await expect( + proposalSubmissionPage.currentPage.getByTestId("rationale-input") + ).toBeVisible(); + }); }); diff --git a/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.loggedin.pd.spec.ts b/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.loggedin.pd.spec.ts index 62b91df76..98f4c4e36 100644 --- a/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.loggedin.pd.spec.ts +++ b/tests/govtool-frontend/playwright/tests/8-proposal-discussion/proposalDiscussion.loggedin.pd.spec.ts @@ -180,36 +180,4 @@ test.describe("Proposal created with poll enabled (proposal auth)", () => { await expect(userProposalDetailsPage.pollYesBtn).not.toBeVisible(); await expect(userProposalDetailsPage.pollNoBtn).not.toBeVisible(); }); - - test("8U. Should navigate to the edit proposal page when 'goto data edit screen' is selected if data does not match the anchor URL", async () => { - const invalidMetadataAnchorUrl = "https://www.google.com"; - await ownerProposalDiscussionDetailsPage.submitAsGABtn.click(); - - const proposalSubmissionPage = new ProposalSubmissionPage(proposalPage); - await proposalPage.getByTestId("agree-checkbox").click(); - await proposalSubmissionPage.continueBtn.click(); - await proposalSubmissionPage.metadataUrlInput.fill( - invalidMetadataAnchorUrl - ); - await proposalSubmissionPage.submitBtn.click(); - - await expect( - proposalPage.getByTestId("data-not-match-modal") - ).toBeVisible(); - await expect( - proposalPage.getByTestId("data-not-match-modal-go-to-data-button") - ).toBeVisible(); - - await proposalPage - .getByTestId("data-not-match-modal-go-to-data-button") - .click(); - - await expect( - proposalPage.getByTestId("governance-action-type") - ).toBeVisible(); - await expect(proposalPage.getByTestId("title-input")).toBeVisible(); - await expect(proposalPage.getByTestId("abstract-input")).toBeVisible(); - await expect(proposalPage.getByTestId("motivation-input")).toBeVisible(); - await expect(proposalPage.getByTestId("rationale-input")).toBeVisible(); - }); }); From aa8fb96003ddd30ad1911bd70e0d4530ecedf26c Mon Sep 17 00:00:00 2001 From: Niraj Date: Fri, 9 May 2025 15:28:34 +0545 Subject: [PATCH 7/7] fix: check identity verification button before proposal deletion --- .../7-proposal-submission/proposalSubmission.ga.spec.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts index 53efc3d73..3826af310 100644 --- a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts +++ b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.ga.spec.ts @@ -113,6 +113,14 @@ test.describe("Proposed as a governance action", async () => { test.afterEach(async () => { // cleanup await proposalDiscussionDetailPage.goto(proposalId); + + const isVerifyIdentityBtnVisible = + await proposalDiscussionDetailPage.verifyIdentityBtn.isVisible(); + + if (isVerifyIdentityBtnVisible) { + await proposalDiscussionDetailPage.verifyIdentityBtn.click(); + } + await proposalDiscussionDetailPage.deleteProposal(); });