From afbe5af5e5abac769b6a5c9610dbe662c9b85db8 Mon Sep 17 00:00:00 2001 From: Yusef Habib Date: Thu, 23 Jan 2025 18:39:31 +0100 Subject: [PATCH] test(porfolio): enable ENABLE_PORTFOLIO_PAGE in missing e2e test (#6240) # Motivation In #6199, we will change the root page from the `tokens` page to the `portfolio`. In #6225, we modified tests that were redirecting to `/` by enabling the feature flag and reloading the page to ensure they function correctly. This PR addresses one missing case from #6225. # Changes - Updated the expectations for navigating to `/`. - Extended the `AppPo` to return the `PortfolioPo`. # Tests - Should pass as before. # Todos - [ ] Add entry to changelog (if necessary). Not necessary --- frontend/src/tests/e2e/multi-tab-auth.spec.ts | 32 ++++++++++++++----- .../src/tests/page-objects/App.page-object.ts | 5 +++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/frontend/src/tests/e2e/multi-tab-auth.spec.ts b/frontend/src/tests/e2e/multi-tab-auth.spec.ts index fcfc698a8d0..4f5e14070a9 100644 --- a/frontend/src/tests/e2e/multi-tab-auth.spec.ts +++ b/frontend/src/tests/e2e/multi-tab-auth.spec.ts @@ -1,6 +1,10 @@ import { AppPo } from "$tests/page-objects/App.page-object"; import { PlaywrightPageObjectElement } from "$tests/page-objects/playwright.page-object"; -import { signInWithNewUser, step } from "$tests/utils/e2e.test-utils"; +import { + setFeatureFlag, + signInWithNewUser, + step, +} from "$tests/utils/e2e.test-utils"; import { expect, test } from "@playwright/test"; const expectSignedOut = async (appPo: AppPo) => { @@ -15,11 +19,12 @@ const expectSignedInAccountsPage = async (appPo: AppPo) => { expect(await appPo.getSignInPo().isPresent()).toBe(false); }; -const expectSignedInTokensPage = async (appPo: AppPo) => { - await appPo.getTokensPo().getTokensPagePo().waitFor(); - expect(await appPo.getTokensPo().getSignInTokensPagePo().isPresent()).toBe( - false - ); +const expectSignedInPortfolioPage = async (appPo: AppPo) => { + await appPo.getPortfolioPo().getPortfolioPagePo().waitFor(); + + expect( + await appPo.getPortfolioPo().getPortfolioPagePo().getLoginCard().isPresent() + ).toBe(false); }; test("Test multi-tab auth", async ({ page: page1, context }) => { @@ -47,9 +52,20 @@ test("Test multi-tab auth", async ({ page: page1, context }) => { await page2.reload(); await expectSignedInAccountsPage(appPo2); - // When signed in, the landing page shows the tokens page. + // When signed in, the landing page shows the portfolio page. await page1.goto("/"); - await expectSignedInTokensPage(appPo1); + + //TODO: Remove once the the feature flag is in PROD + await expect(page1).toHaveTitle(/.*\s\/\sNNS Dapp/); + + await setFeatureFlag({ + page: page1, + featureFlag: "ENABLE_PORTFOLIO_PAGE", + value: true, + }); + + await page1.reload(); + await expectSignedInPortfolioPage(appPo1); await step("Sign out"); await appPo1.getAccountMenuPo().openMenu(); diff --git a/frontend/src/tests/page-objects/App.page-object.ts b/frontend/src/tests/page-objects/App.page-object.ts index f72a6579c58..0be390e5f00 100644 --- a/frontend/src/tests/page-objects/App.page-object.ts +++ b/frontend/src/tests/page-objects/App.page-object.ts @@ -9,6 +9,7 @@ import { LaunchpadPo } from "$tests/page-objects/Launchpad.page-object"; import { MenuItemsPo } from "$tests/page-objects/MenuItems.page-object"; import { NeuronDetailPo } from "$tests/page-objects/NeuronDetail.page-object"; import { NeuronsPo } from "$tests/page-objects/Neurons.page-object"; +import { PortfolioRoutePo } from "$tests/page-objects/PortfolioRoute.page-object"; import { ProjectDetailPo } from "$tests/page-objects/ProjectDetail.page-object"; import { ProposalDetailPo } from "$tests/page-objects/ProposalDetail.page-object"; import { ProposalsPo } from "$tests/page-objects/Proposals.page-object"; @@ -40,6 +41,10 @@ export class AppPo extends BasePageObject { return SignInAccountsPo.under(this.root); } + getPortfolioPo(): PortfolioRoutePo { + return PortfolioRoutePo.under(this.root); + } + getTokensPo(): TokensRoutePo { return TokensRoutePo.under(this.root); }