summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2025-09-24 15:48:40 +0200
committerOskar <oskar@mullvad.net>2025-09-30 12:11:36 +0200
commit51e06c07a004a8c575621ca2ad2bf40b30fc2d27 (patch)
treec19f17ae846f375d2fd683ac18cc1a4ff97bdf84
parent477dae5658e2395c6feb32c55630848f645b3189 (diff)
downloadmullvadvpn-51e06c07a004a8c575621ca2ad2bf40b30fc2d27.tar.xz
mullvadvpn-51e06c07a004a8c575621ca2ad2bf40b30fc2d27.zip
Add shadowsocks settings route object model
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/routes-object-model.ts3
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/index.ts2
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/selectors.ts13
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/shadowsocks-settings-route-object-model.ts22
4 files changed, 40 insertions, 0 deletions
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 9cf32e5caf..997247d2fa 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
@@ -10,6 +10,7 @@ import { MultihopSettingsRouteObjectModel } from './multihop-settings';
import { SelectLanguageRouteObjectModel } from './select-language';
import { SelectLocationRouteObjectModel } from './select-location';
import { SettingsRouteObjectModel } from './settings/settings-route-object-model';
+import { ShadowsocksSettingsRouteObjectModel } from './shadowsocks-settings';
import { SplitTunnelingSettingsRouteObjectModel } from './split-tunneling-settings';
import { UdpOverTcpSettingsRouteObjectModel } from './udp-over-tcp-settings';
import { UserInterfaceSettingsRouteObjectModel } from './user-interface-settings';
@@ -31,6 +32,7 @@ export class RoutesObjectModel {
readonly multihopSettings: MultihopSettingsRouteObjectModel;
readonly daitaSettings: DaitaSettingsRouteObjectModel;
readonly splitTunnelingSettings: SplitTunnelingSettingsRouteObjectModel;
+ readonly shadowsocksSettings: ShadowsocksSettingsRouteObjectModel;
constructor(page: Page, utils: TestUtils) {
this.selectLanguage = new SelectLanguageRouteObjectModel(page, utils);
@@ -47,5 +49,6 @@ export class RoutesObjectModel {
this.multihopSettings = new MultihopSettingsRouteObjectModel(page, utils);
this.daitaSettings = new DaitaSettingsRouteObjectModel(page, utils);
this.splitTunnelingSettings = new SplitTunnelingSettingsRouteObjectModel(page, utils);
+ this.shadowsocksSettings = new ShadowsocksSettingsRouteObjectModel(page, utils);
}
}
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/index.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/index.ts
new file mode 100644
index 0000000000..ee8499fbda
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/index.ts
@@ -0,0 +1,2 @@
+export * from './shadowsocks-settings-route-object-model';
+export * from './selectors';
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/selectors.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/selectors.ts
new file mode 100644
index 0000000000..6d7844396d
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/selectors.ts
@@ -0,0 +1,13 @@
+import { Page } from 'playwright';
+
+export const createSelectors = (page: Page) => ({
+ automaticPortOption: () =>
+ page
+ .getByRole('listbox', { name: 'Port' })
+ .getByRole('option', { name: 'Automatic', exact: true }),
+ customPortOption: () =>
+ page
+ .getByRole('listbox', { name: 'Port' })
+ .getByRole('option', { name: 'Custom', exact: true }),
+ portInput: () => page.getByPlaceholder('Port'),
+});
diff --git a/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/shadowsocks-settings-route-object-model.ts b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/shadowsocks-settings-route-object-model.ts
new file mode 100644
index 0000000000..3c56fa5bc0
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/test/e2e/route-object-models/shadowsocks-settings/shadowsocks-settings-route-object-model.ts
@@ -0,0 +1,22 @@
+import { Page } from 'playwright';
+
+import { TestUtils } from '../../utils';
+import { NavigationObjectModel } from '../navigation';
+import { createSelectors } from './selectors';
+
+export class ShadowsocksSettingsRouteObjectModel extends NavigationObjectModel {
+ readonly selectors: ReturnType<typeof createSelectors>;
+
+ constructor(page: Page, utils: TestUtils) {
+ super(page, utils);
+
+ this.selectors = createSelectors(page);
+ }
+
+ async fillPortInput(port: number) {
+ const input = this.selectors.portInput();
+ await input.click();
+ await input.fill(`${port}`);
+ await input.press('Enter');
+ }
+}