diff options
| author | Oliver <oliver@mohlin.dev> | 2025-09-13 14:36:55 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-10-10 13:36:20 +0200 |
| commit | 2674ba6138cc45abcff092a7b136be75372702d9 (patch) | |
| tree | 9216bf2ae66621a80499e02d59d7b4c452ce8707 | |
| parent | 36e2755daa1fc1465086ec404f539dc5b4ccfb31 (diff) | |
| download | mullvadvpn-2674ba6138cc45abcff092a7b136be75372702d9.tar.xz mullvadvpn-2674ba6138cc45abcff092a7b136be75372702d9.zip | |
Add manage devices route object model
4 files changed, 29 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/index.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/index.ts new file mode 100644 index 0000000000..2caff95ea1 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/index.ts @@ -0,0 +1,2 @@ +export * from './manage-devices-route-object-model'; +export * from './selectors'; diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/manage-devices-route-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/manage-devices-route-object-model.ts new file mode 100644 index 0000000000..ab1a55c0d2 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/manage-devices-route-object-model.ts @@ -0,0 +1,16 @@ +import { Page } from 'playwright'; + +import { TestUtils } from '../../utils'; +import { createSelectors } from './selectors'; + +export class ManageDevicesRouteObjectModel { + 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); + } +} diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/selectors.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/selectors.ts new file mode 100644 index 0000000000..5e6250ee5c --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/manage-devices/selectors.ts @@ -0,0 +1,8 @@ +import { Page } from 'playwright'; + +export const createSelectors = (page: Page) => ({ + deviceListItems: () => page.getByRole('list'), + deviceListItem: (name: string) => page.getByRole('listitem').filter({ hasText: name }), + removeDeviceButton: (name: string) => page.getByLabel(`Remove device named ${name}`), + confirmRemoveDeviceButton: () => page.getByRole('button', { name: 'Remove', exact: true }), +}); 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 e93faa7097..1e31a36441 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 @@ -9,6 +9,7 @@ import { FilterRouteObjectModel } from './filter'; import { LaunchRouteObjectModel } from './launch'; import { LoginRouteObjectModel } from './login'; import { MainRouteObjectModel } from './main'; +import { ManageDevicesRouteObjectModel } from './manage-devices'; import { MultihopSettingsRouteObjectModel } from './multihop-settings'; import { RedeemVoucherRouteObjectModel } from './redeem-voucher'; import { SelectLanguageRouteObjectModel } from './select-language'; @@ -49,6 +50,7 @@ export class RoutesObjectModel { readonly splitTunnelingSettings: SplitTunnelingSettingsRouteObjectModel; readonly shadowsocksSettings: ShadowsocksSettingsRouteObjectModel; readonly account: AccountRouteObjectModel; + readonly manageDevices: ManageDevicesRouteObjectModel; constructor(page: Page, utils: TestUtils) { this.selectLanguage = new SelectLanguageRouteObjectModel(page, utils); @@ -74,5 +76,6 @@ export class RoutesObjectModel { this.splitTunnelingSettings = new SplitTunnelingSettingsRouteObjectModel(page, utils); this.shadowsocksSettings = new ShadowsocksSettingsRouteObjectModel(page, utils); this.account = new AccountRouteObjectModel(page, utils); + this.manageDevices = new ManageDevicesRouteObjectModel(page, utils); } } |
