summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-09-10 21:05:32 +0200
committerOskar <oskar@mullvad.net>2025-10-01 13:19:43 +0200
commit8bd1cb3e309abd8ca827832a84867a64a4631286 (patch)
tree26c9d318a8fd1c18d18edaccd27132edbf2701b6
parentc6395a75523710069dda1446d193c9c7d0623652 (diff)
downloadmullvadvpn-8bd1cb3e309abd8ca827832a84867a64a4631286.tar.xz
mullvadvpn-8bd1cb3e309abd8ca827832a84867a64a4631286.zip
Add expired route object model
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/expired-route-object-model.ts25
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/index.ts2
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/expired/selectors.ts5
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts3
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);