summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-08-21 16:40:48 +0200
committerOskar <oskar@mullvad.net>2025-08-26 13:12:21 +0200
commit451980c9a5f72c2a062e4ad02f015515917c8115 (patch)
tree08bb00309beda6b3bb56d33c3099c8e4e47ffd37
parentabd2ea7779186abe7d1027c404b0bc4d9bced5ac (diff)
downloadmullvadvpn-451980c9a5f72c2a062e4ad02f015515917c8115.tar.xz
mullvadvpn-451980c9a5f72c2a062e4ad02f015515917c8115.zip
Add navigation object model for tests
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/index.ts2
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/navigation-object-model.ts24
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/selectors.ts5
3 files changed, 31 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/index.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/index.ts
new file mode 100644
index 0000000000..5513f2ede3
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/index.ts
@@ -0,0 +1,2 @@
+export * from './navigation-object-model';
+export * from './selectors';
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/navigation-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/navigation-object-model.ts
new file mode 100644
index 0000000000..3234905965
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/navigation-object-model.ts
@@ -0,0 +1,24 @@
+import { Page } from 'playwright';
+
+import { TestUtils } from '../../utils';
+import { createSelectors } from './selectors';
+
+export class NavigationObjectModel {
+ readonly navigationSelectors: ReturnType<typeof createSelectors>;
+
+ constructor(
+ protected readonly page: Page,
+ protected readonly utils: TestUtils,
+ ) {
+ this.navigationSelectors = createSelectors(page);
+ }
+
+ async goBack() {
+ await this.navigationSelectors.backButton().click();
+ await this.utils.waitForNextRoute();
+ }
+
+ async gotoRoot() {
+ await this.page.press('body', 'Shift+Escape');
+ }
+}
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/selectors.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/selectors.ts
new file mode 100644
index 0000000000..027b6f3018
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/navigation/selectors.ts
@@ -0,0 +1,5 @@
+import { Page } from 'playwright';
+
+export const createSelectors = (page: Page) => ({
+ backButton: () => page.getByRole('button', { name: /(Back|Close)/ }),
+});