Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions tests/govtool-frontend/playwright/lib/constants/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ export const budgetProposal01AuthFile = ".auth/budgetProposal01.json";
export const budgetProposal02AuthFile = ".auth/budgetProposal02.json";
export const budgetProposal03AuthFile = ".auth/budgetProposal03.json";
export const budgetProposal04AuthFile = ".auth/budgetProposal04.json";
export const budgetProposal05AuthFile = ".auth/budgetProposal05.json";
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export const budgetProposal01Wallet: StaticWallet = staticWallets[19];
export const budgetProposal02Wallet: StaticWallet = staticWallets[20];
export const budgetProposal03Wallet: StaticWallet = staticWallets[21];
export const budgetProposal04Wallet: StaticWallet = staticWallets[22];
export const budgetProposal05Wallet: StaticWallet = staticWallets[23];

export const adaHolderWallets = [
adaHolder01Wallet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export default class BudgetDiscussionDetailsPage {
);
readonly verifyIdentityBtn = this.page.getByTestId("verify-identity-button");
readonly readMoreBtn = this.page.getByTestId("read-more-button");
readonly menuButton = this.page.getByTestId("menu-button");

// content
readonly copyLinkText = this.page.getByTestId("copy-link-text");
Expand Down Expand Up @@ -139,7 +140,7 @@ export default class BudgetDiscussionDetailsPage {
async deleteProposal() {
await this.page.waitForTimeout(2_000);

await this.page.getByTestId("menu-button").click();
await this.menuButton.click();
await this.page.getByTestId("delete-proposal").click();
await this.page.getByTestId("delete-proposal-yes-button").click();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ export default class BudgetDiscussionPage {
readonly verifyIdentityBtn = this.page.getByTestId("verify-identity-button");
readonly filterBtn = this.page.getByTestId("filter-button");
readonly sortBtn = this.page.getByTestId("sort-button");
readonly myProposalBtn = this.page.getByTestId(
"My Proposals-owner-filter-option"
);

// input
readonly searchInput = this.page.getByTestId("search-input");
Expand Down Expand Up @@ -49,7 +52,10 @@ export default class BudgetDiscussionPage {
});
const proposalCards = await this.page.locator(proposalCardSelector).all();

expect(true, "No budget proposals found.").toBeTruthy();
expect(
true,
proposalCards.length === 0 && "No budget proposals found."
).toBeTruthy();

return proposalCards;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/govtool-frontend/playwright/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"test:headless:usersnap": "npx playwright test userSnap.spec.ts",
"test:headless:misc": "npx playwright test miscellaneous",
"format": "prettier . --write",
"generate-wallets": "ts-node ./generate_wallets.ts 23",
"generate-wallets": "ts-node ./generate_wallets.ts 24",
"generate-faucet-wallet": "ts-node ./generate_faucet_wallet.ts"
},
"dependencies": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,21 @@ import {
budgetProposal02AuthFile,
budgetProposal03AuthFile,
budgetProposal04AuthFile,
budgetProposal05AuthFile,
} from "@constants/auth";
import {
budgetProposal01Wallet,
budgetProposal02Wallet,
budgetProposal03Wallet,
budgetProposal04Wallet,
budgetProposal05Wallet,
} from "@constants/staticWallets";
import { faker } from "@faker-js/faker";
import { test } from "@fixtures/budgetProposal";
import { setAllureEpic } from "@helpers/allure";
import { createNewPageWithWallet } from "@helpers/page";
import BudgetDiscussionDetailsPage from "@pages/budgetDiscussionDetailsPage";
import BudgetDiscussionPage from "@pages/budgetDiscussionPage";
import BudgetDiscussionSubmissionPage from "@pages/budgetDiscussionSubmissionPage";
import { expect } from "@playwright/test";
import {
Expand Down Expand Up @@ -305,7 +308,7 @@ test.describe("Budget proposal 01 wallet", () => {
await budgetProposalSubmissionPage.currentPage
.getByTestId(`${contractingType}-button`)
.click();
if (contractingType === "Other") {
if (contractingType === "other") {
await budgetProposalSubmissionPage.otherDescriptionInput.fill(
faker.lorem.paragraph(2)
);
Expand Down Expand Up @@ -510,3 +513,36 @@ test("12I. Should submit a valid draft budget proposal", async ({

await budgetDiscussionDetailsPage.deleteProposal();
});

test("12J. Should verify created proposal appears in my proposals list", async ({
browser,
}) => {
test.slow();
const page = await createNewPageWithWallet(browser, {
storageState: budgetProposal05AuthFile,
wallet: budgetProposal05Wallet,
});

const budgetSubmissionPage = new BudgetDiscussionSubmissionPage(page);
await budgetSubmissionPage.goto();
const { proposalDetails } = await budgetSubmissionPage.createBudgetProposal();
const budgetDiscussionPage = new BudgetDiscussionPage(page);
await budgetDiscussionPage.goto();

await budgetDiscussionPage.filterBtn.click();
await budgetDiscussionPage.myProposalBtn.click();

const proposalList = await budgetDiscussionPage.getAllProposals();

expect(proposalList.length).toBeGreaterThan(0);

// Close the filter dropdown to ensure the proposals list is visible
await budgetDiscussionPage.sortBtn.click({ force: true });
const budgetDiscussionDetailsPage =
await budgetDiscussionPage.viewFirstProposal();

await expect(budgetDiscussionDetailsPage.menuButton).toBeVisible();
await budgetDiscussionDetailsPage.validateProposalDetails(proposalDetails);

await budgetDiscussionDetailsPage.deleteProposal();
});
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import {
budgetProposal02AuthFile,
budgetProposal03AuthFile,
budgetProposal04AuthFile,
budgetProposal05AuthFile,
dRep03AuthFile,
} from "@constants/auth";
import {
budgetProposal01Wallet,
budgetProposal02Wallet,
budgetProposal03Wallet,
budgetProposal04Wallet,
budgetProposal05Wallet,
dRep03Wallet,
} from "@constants/staticWallets";
import { test as setup } from "@fixtures/walletExtension";
Expand Down Expand Up @@ -42,6 +44,11 @@ const walletAuthPairs = [
auth: budgetProposal04AuthFile,
name: "Budget Proposal 04",
},
{
wallet: budgetProposal05Wallet,
auth: budgetProposal05AuthFile,
name: "Budget Proposal 05",
},
];

walletAuthPairs.forEach(({ wallet, auth, name }) => {
Expand Down