diff options
| author | Oliver <oliver@mohlin.dev> | 2025-09-12 18:21:10 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-10-10 13:36:20 +0200 |
| commit | 36e2755daa1fc1465086ec404f539dc5b4ccfb31 (patch) | |
| tree | 1f3166ba6ac27cef4b3a0f6d729eeffe8bb7fafb | |
| parent | c7ec09404829f9291699e071e6269a0004c5543c (diff) | |
| download | mullvadvpn-36e2755daa1fc1465086ec404f539dc5b4ccfb31.tar.xz mullvadvpn-36e2755daa1fc1465086ec404f539dc5b4ccfb31.zip | |
Add account route object model
4 files changed, 32 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/account-route-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/account-route-object-model.ts new file mode 100644 index 0000000000..0a3b91be3b --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/account-route-object-model.ts @@ -0,0 +1,22 @@ +import { Page } from 'playwright'; + +import { RoutePath } from '../../../../src/shared/routes'; +import { TestUtils } from '../../utils'; +import { createSelectors } from './selectors'; + +export class AccountRouteObjectModel { + readonly page: Page; + readonly utils: TestUtils; + readonly selectors: ReturnType<typeof createSelectors>; + + constructor(page: Page, util: TestUtils) { + this.page = page; + this.utils = util; + this.selectors = createSelectors(page); + } + + async gotoManageDevices() { + await this.selectors.manageDevicesButton().click(); + await this.utils.expectRoute(RoutePath.manageDevices); + } +} diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/index.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/index.ts new file mode 100644 index 0000000000..87606940ca --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/index.ts @@ -0,0 +1,2 @@ +export * from './account-route-object-model'; +export * from './selectors'; diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/selectors.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/selectors.ts new file mode 100644 index 0000000000..60aafd2d6a --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/account/selectors.ts @@ -0,0 +1,5 @@ +import { Page } from 'playwright'; + +export const createSelectors = (page: Page) => ({ + manageDevicesButton: () => page.getByRole('button', { name: 'Manage devices' }), +}); 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 77ec121306..e93faa7097 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 @@ -1,6 +1,7 @@ import { Page } from 'playwright'; import { TestUtils } from '../utils'; +import { AccountRouteObjectModel } from './account'; import { DaitaSettingsRouteObjectModel } from './daita-settings'; import { DeviceRevokedRouteObjectModel } from './device-revoked'; import { ExpiredRouteObjectModel } from './expired'; @@ -47,6 +48,7 @@ export class RoutesObjectModel { readonly daitaSettings: DaitaSettingsRouteObjectModel; readonly splitTunnelingSettings: SplitTunnelingSettingsRouteObjectModel; readonly shadowsocksSettings: ShadowsocksSettingsRouteObjectModel; + readonly account: AccountRouteObjectModel; constructor(page: Page, utils: TestUtils) { this.selectLanguage = new SelectLanguageRouteObjectModel(page, utils); @@ -71,5 +73,6 @@ export class RoutesObjectModel { this.daitaSettings = new DaitaSettingsRouteObjectModel(page, utils); this.splitTunnelingSettings = new SplitTunnelingSettingsRouteObjectModel(page, utils); this.shadowsocksSettings = new ShadowsocksSettingsRouteObjectModel(page, utils); + this.account = new AccountRouteObjectModel(page, utils); } } |
