diff options
| author | Oskar <oskar@mullvad.net> | 2025-09-30 13:51:40 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-10-01 13:19:43 +0200 |
| commit | 8be95ab1b1f1d91f390235beff7c5b42feee357d (patch) | |
| tree | 6337d41f79df2132d1a790d4e4475e05375743d8 | |
| parent | 3c2b13593aaf9ca1a44e4a2566216cd5ed7020cd (diff) | |
| download | mullvadvpn-8be95ab1b1f1d91f390235beff7c5b42feee357d.tar.xz mullvadvpn-8be95ab1b1f1d91f390235beff7c5b42feee357d.zip | |
Fix use of colon in routes
| -rw-r--r-- | desktop/packages/mullvad-vpn/test/e2e/lib/path-helpers.ts | 8 | ||||
| -rw-r--r-- | desktop/packages/mullvad-vpn/test/unit/path-helpers.spec.ts | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/lib/path-helpers.ts b/desktop/packages/mullvad-vpn/test/e2e/lib/path-helpers.ts index 53986e7002..bd8593dc88 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/lib/path-helpers.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/lib/path-helpers.ts @@ -29,10 +29,6 @@ function trimTrailingSlash(value: string): string { // Match b against a where a can contain parameters export function matchPaths(a: string | null, b: string | null): boolean { - if (b?.includes(':')) { - throw new Error('Only a is allowed to contain parameters'); - } - if (a === null || b === null) { return a === b; } @@ -40,6 +36,10 @@ export function matchPaths(a: string | null, b: string | null): boolean { const aParts = trimTrailingSlash(a).split('/'); const bParts = trimTrailingSlash(b).split('/'); + if (bParts.some((part) => part.startsWith(':'))) { + throw new Error('Only first argument is allowed to contain dynamic route path segments'); + } + return ( aParts.length >= bParts.length && aParts.every((aPart, i) => { diff --git a/desktop/packages/mullvad-vpn/test/unit/path-helpers.spec.ts b/desktop/packages/mullvad-vpn/test/unit/path-helpers.spec.ts index 807604d2ea..1c7a814453 100644 --- a/desktop/packages/mullvad-vpn/test/unit/path-helpers.spec.ts +++ b/desktop/packages/mullvad-vpn/test/unit/path-helpers.spec.ts @@ -20,7 +20,8 @@ describe('E2E test path helper', () => { expect(matchPaths('/a/b/c', 'a/b/c')).to.be.false; expect(matchPaths('/a/b/:param', '/a/b')).to.be.false; - expect(() => matchPaths('/a/b/c', '/a/b/:param')).to.throw(); + expect(() => matchPaths('/a/b/c', '/a/b/:clock')).to.throw(); + expect(() => matchPaths('/a/b/:clock', '/a/b/20:00')).not.to.throw(); }); it('should correctly replace parameters', () => { |
