forked from supabase/ssr
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreateBrowserClient.spec.ts
More file actions
75 lines (61 loc) · 2.34 KB
/
createBrowserClient.spec.ts
File metadata and controls
75 lines (61 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { describe, it, expect, vi, beforeEach } from "vitest";
import { MAX_CHUNK_SIZE, stringToBase64URL } from "./utils";
import { CookieOptions } from "./types";
import { createBrowserClient } from "./createBrowserClient";
// Spy on createClient to capture auth options passed through
const createClientSpy = vi.fn().mockReturnValue({
auth: {},
realtime: {},
});
vi.mock("@supabase/supabase-js", () => ({
createClient: (...args: any[]) => createClientSpy(...args),
}));
describe("createBrowserClient", () => {
beforeEach(() => {
createClientSpy.mockClear();
});
describe("validation", () => {
it("should throw an error on empty URL and anon key", async () => {
expect(() => {
createBrowserClient("URL", "");
}).toThrow();
expect(() => {
createBrowserClient("", "anon key");
}).toThrow();
});
});
describe("auth options passthrough", () => {
it("should respect autoRefreshToken when explicitly set to false", () => {
createBrowserClient("http://localhost", "anon-key", {
isSingleton: false,
auth: { autoRefreshToken: false },
});
const passedOptions = createClientSpy.mock.calls[0][2];
expect(passedOptions.auth.autoRefreshToken).toBe(false);
});
it("should respect detectSessionInUrl when explicitly set to false", () => {
createBrowserClient("http://localhost", "anon-key", {
isSingleton: false,
auth: { detectSessionInUrl: false },
});
const passedOptions = createClientSpy.mock.calls[0][2];
expect(passedOptions.auth.detectSessionInUrl).toBe(false);
});
it("should respect persistSession when explicitly set to false", () => {
createBrowserClient("http://localhost", "anon-key", {
isSingleton: false,
auth: { persistSession: false },
});
const passedOptions = createClientSpy.mock.calls[0][2];
expect(passedOptions.auth.persistSession).toBe(false);
});
it("should use defaults when auth options are not provided", () => {
createBrowserClient("http://localhost", "anon-key", {
isSingleton: false,
});
const passedOptions = createClientSpy.mock.calls[0][2];
// defaults come from isBrowser() for autoRefreshToken/detectSessionInUrl, true for persistSession
expect(passedOptions.auth.persistSession).toBe(true);
});
});
});