| ... | @@ -5,7 +5,6 @@ import { | ... | @@ -5,7 +5,6 @@ import { |
| 5 | ClerkPublishableKeyFrontendApiError, | 5 | ClerkPublishableKeyFrontendApiError, |
| 6 | clerkFrontendApiHostnameFromPublishableKey, | 6 | clerkFrontendApiHostnameFromPublishableKey, |
| 7 | clerkFrontendApiUrlFromPublishableKey, | 7 | clerkFrontendApiUrlFromPublishableKey, |
| 8 | isAllowedClerkFrontendApiHostname, | | |
| 9 | } from "./relayAuth.ts"; | 8 | } from "./relayAuth.ts"; |
| 10 | | 9 | |
| 11 | const clerkPublishableKey = (hostname: string): string => `pk_test_${btoa(`${hostname}$`)}`; | 10 | const clerkPublishableKey = (hostname: string): string => `pk_test_${btoa(`${hostname}$`)}`; |
| ... | @@ -75,14 +74,4 @@ describe("Clerk relay auth", () => { | ... | @@ -75,14 +74,4 @@ describe("Clerk relay auth", () => { |
| 75 | }); | 74 | }); |
| 76 | expect((error as ClerkPublishableKeyFrontendApiError).cause).toBeInstanceOf(Error); | 75 | expect((error as ClerkPublishableKeyFrontendApiError).cause).toBeInstanceOf(Error); |
| 77 | }); | 76 | }); |
| 78 | | | |
| 79 | it("allows standard Clerk hosts and an exact configured custom hostname", () => { | | |
| 80 | expect(isAllowedClerkFrontendApiHostname("example.clerk.accounts.dev", null)).toBe(true); | | |
| 81 | expect(isAllowedClerkFrontendApiHostname("example.clerk.accounts.com", null)).toBe(true); | | |
| 82 | expect(isAllowedClerkFrontendApiHostname("clerk.t3.codes", "clerk.t3.codes")).toBe(true); | | |
| 83 | expect(isAllowedClerkFrontendApiHostname("attacker.example", "clerk.t3.codes")).toBe(false); | | |
| 84 | expect(isAllowedClerkFrontendApiHostname("nested.clerk.t3.codes", "clerk.t3.codes")).toBe( | | |
| 85 | false, | | |
| 86 | ); | | |
| 87 | }); | | |
| 88 | }); | 77 | }); |