The Coline App SDK: apps, tools, file types and surfaces that run inside Coline workspaces, and public websites with Coline Sites. TypeScript, with an in-memory test workspace. MIT.
| 5 |
| createPkcePair, |
| 6 | generatePkceCodeVerifier, |
| 7 | } from "./oauth"; |
| 8 |
| 9 | describe("oauth helpers", () => { |
| 10 | it("generates PKCE verifiers in the expected length range", () => { |
| 11 | const verifier = generatePkceCodeVerifier(); |
| 12 | expect(verifier.length).toBeGreaterThanOrEqual(43); |
| 13 | expect(verifier.length).toBeLessThanOrEqual(128); |
| 14 | }); |
| 15 |
| 16 | it("creates deterministic S256 code challenges", async () => { |
| 17 | const challenge = await createPkceCodeChallenge("test-verifier"); |
| 18 | expect(challenge).toBe("JBbiqONGWPaAmwXk_8bT6UnlPfrn65D32eZlJS-zGG0"); |
| 19 | }); |
| 20 |
| 21 | it("creates PKCE pairs and oauth state values", async () => { |
| 22 | const pkce = await createPkcePair(); |
| 23 | expect(pkce.method).toBe("S256"); |
| 24 | expect(pkce.verifier.length).toBeGreaterThan(40); |
| 25 | expect(pkce.challenge.length).toBeGreaterThan(40); |
| 26 |
| 27 | const state = createOauthState(); |
| 28 | expect(state.length).toBeGreaterThan(20); |
| 29 | }); |
| 30 | }); |
| 31 |