summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2025-07-22 15:09:38 +0200
committerDavid Lönnhager <david.l@mullvad.net>2025-07-23 09:41:54 +0200
commit24e4345d490ef5edc3e70be08f3e950a05c75b4b (patch)
treebeeddbc1a4404d3a3d0798f76be2e4c96633ad5f
parentc3fe098f19452c9f0dae39b33459010d3d4d4779 (diff)
downloadmullvadvpn-24e4345d490ef5edc3e70be08f3e950a05c75b4b.tar.xz
mullvadvpn-24e4345d490ef5edc3e70be08f3e950a05c75b4b.zip
Add test for filtering relays supporting QUIC obfuscation
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/helpers.ts8
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/mock-data.ts16
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/select-location.spec.ts23
3 files changed, 47 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/helpers.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/helpers.ts
index 7490adc6ac..d04dac2f3b 100644
--- a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/helpers.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/helpers.ts
@@ -51,6 +51,13 @@ export const createHelpers = (page: Page, routes: RoutesObjectModel, utils: Mock
),
);
+ const locateRelaysByObfuscation = (relayList: IRelayList): LocatedRelay[] =>
+ relayList.countries.flatMap((country) =>
+ country.cities.flatMap((city) =>
+ city.relays.filter((relay) => relay.quic).map((relay) => ({ country, city, relay })),
+ ),
+ );
+
const resetOwnership = async () => {
await routes.filter.expandOwnership();
await routes.filter.selectOwnershipOption('Any');
@@ -104,6 +111,7 @@ export const createHelpers = (page: Page, routes: RoutesObjectModel, utils: Mock
expandLocatedRelays,
locateRelaysByProvider,
locateRelaysByOwner,
+ locateRelaysByObfuscation,
resetOwnership,
resetProviders,
resetView,
diff --git a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/mock-data.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/mock-data.ts
index 6e60e29c8d..f3039c2537 100644
--- a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/mock-data.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/mock-data.ts
@@ -45,6 +45,22 @@ const relayList: IRelayList = {
endpointType: 'wireguard',
daita: true,
},
+ {
+ hostname: 'se-got-wg-104',
+ provider: 'mullvad',
+ ipv4AddrIn: '10.0.0.4',
+ includeInCountry: true,
+ active: true,
+ weight: 0,
+ owned: true,
+ endpointType: 'wireguard',
+ daita: true,
+ quic: {
+ addrIn: [],
+ domain: '',
+ token: '',
+ },
+ },
],
},
],
diff --git a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/select-location.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/select-location.spec.ts
index 3f4e00af03..ab4cd3736d 100644
--- a/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/select-location.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location/select-location.spec.ts
@@ -7,6 +7,7 @@ import {
IRelayListWithEndpointData,
ISettings,
IWireguardEndpointData,
+ ObfuscationType,
Ownership,
} from '../../../../src/shared/daemon-rpc-types';
import { RoutePath } from '../../../../src/shared/routes';
@@ -219,5 +220,27 @@ test.describe('Select location', () => {
});
});
});
+ test.describe('Filter by obfuscation', () => {
+ test('Should apply filter when QUIC obfuscation is selected', async () => {
+ const settings = getDefaultSettings();
+ if ('normal' in settings.relaySettings) {
+ settings.obfuscationSettings.selectedObfuscation = ObfuscationType.quic;
+ }
+ await util.sendMockIpcResponse<ISettings>({
+ channel: 'settings-',
+ response: settings,
+ });
+ const locatedRelays = helpers.locateRelaysByObfuscation(relayList);
+ const relays = locatedRelays.map((locatedRelay) => locatedRelay.relay);
+ const relayNames = relays.map((relay) => relay.hostname);
+
+ await helpers.expandLocatedRelays(locatedRelays);
+
+ const buttons = routes.selectLocation.getRelaysMatching(relayNames);
+
+ // Expect all filtered relays to have a button
+ await expect(buttons).toHaveCount(relays.length);
+ });
+ });
});
});