diff options
| author | Oskar <oskar@mullvad.net> | 2025-09-10 21:05:32 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-10-01 13:19:43 +0200 |
| commit | 8bd1cb3e309abd8ca827832a84867a64a4631286 (patch) | |
| tree | 26c9d318a8fd1c18d18edaccd27132edbf2701b6 | |
| parent | c6395a75523710069dda1446d193c9c7d0623652 (diff) | |
| download | mullvadvpn-8bd1cb3e309abd8ca827832a84867a64a4631286.tar.xz mullvadvpn-8bd1cb3e309abd8ca827832a84867a64a4631286.zip | |
Add expired route object model
4 files changed, 35 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/expired-route-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/expired-route-object-model.ts new file mode 100644 index 0000000000..d1449690c7 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/expired-route-object-model.ts @@ -0,0 +1,25 @@ +import { Page } from 'playwright'; + +import { RoutePath } from '../../../../src/shared/routes'; +import { TestUtils } from '../../utils'; +import { createSelectors } from './selectors'; + +export class ExpiredRouteObjectModel { + readonly selectors: ReturnType<typeof createSelectors>; + + constructor( + private readonly page: Page, + private readonly utils: TestUtils, + ) { + this.selectors = createSelectors(this.page); + } + + async waitForRoute() { + await this.utils.expectRoute(RoutePath.expired); + } + + async gotoRedeemVoucher() { + await this.selectors.redeemVoucherButton().click(); + await this.utils.expectRoute(RoutePath.redeemVoucher); + } +} diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/index.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/index.ts new file mode 100644 index 0000000000..367b039480 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/index.ts @@ -0,0 +1,2 @@ +export * from './expired-route-object-model'; +export * from './selectors'; diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/selectors.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/selectors.ts new file mode 100644 index 0000000000..71b652d724 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/selectors.ts @@ -0,0 +1,5 @@ +import { Page } from 'playwright'; + +export const createSelectors = (page: Page) => ({ + redeemVoucherButton: () => page.getByRole('button', { name: 'Redeem voucher' }), +}); diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts index 997247d2fa..b5ba6c7b34 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts @@ -2,6 +2,7 @@ import { Page } from 'playwright'; import { TestUtils } from '../utils'; import { DaitaSettingsRouteObjectModel } from './daita-settings'; +import { ExpiredRouteObjectModel } from './expired'; import { FilterRouteObjectModel } from './filter'; import { LaunchRouteObjectModel } from './launch'; import { LoginRouteObjectModel } from './login'; @@ -21,6 +22,7 @@ export class RoutesObjectModel { readonly main: MainRouteObjectModel; readonly launch: LaunchRouteObjectModel; readonly login: LoginRouteObjectModel; + readonly expired: ExpiredRouteObjectModel; readonly settings: SettingsRouteObjectModel; readonly userInterfaceSettings: UserInterfaceSettingsRouteObjectModel; readonly selectLanguage: SelectLanguageRouteObjectModel; @@ -39,6 +41,7 @@ export class RoutesObjectModel { this.main = new MainRouteObjectModel(page, utils); this.launch = new LaunchRouteObjectModel(page, utils); this.login = new LoginRouteObjectModel(page, utils); + this.expired = new ExpiredRouteObjectModel(page, utils); this.settings = new SettingsRouteObjectModel(page, utils); this.userInterfaceSettings = new UserInterfaceSettingsRouteObjectModel(page, utils); this.filter = new FilterRouteObjectModel(page, utils); |
