Skip to content
Source
Sign inSign up

providerAuthReturnUrl.test.ts

21 lines855 Bytes

1import { describe, expect, it } from "vite-plus/test";
2import { providerAuthReturnUrl } from "./providerAuthReturnUrl.ts";
3​
4describe("provider auth return destinations", () => {
5 it.each(["t3code", "t3code-dev"])(
6 "returns to %s Welcome and the selected settings instance",
7 (scheme) => {
8 expect(providerAuthReturnUrl(`${scheme}://app/welcome?code=secret#agents:machine-id`)).toBe(
9 `${scheme}://app/welcome#agents:machine-id`,
10 );
11 expect(
12 providerAuthReturnUrl(`${scheme}://app/settings/providers?instanceId=work&code=secret`),
13 ).toBe(`${scheme}://app/settings/providers?instanceId=work`);
14 },
15 );
16 it.each([
17 "t3code://attacker/welcome",
18 "t3code://app/welcome/../evil",
19 "https://attacker.example/welcome",
20 ])("rejects %s", (url) => expect(providerAuthReturnUrl(url)).toBeUndefined());
21});