import { describe, expect, it, beforeEach } from "vitest" import { hasSession, loadSession, persistFromArcadiaLogin, signOut, updateSessionUser, } from "./session" describe("session", () => { beforeEach(() => { localStorage.clear() sessionStorage.clear() }) it("starts unauthenticated", () => { expect(loadSession()).toBeNull() expect(hasSession()).toBe(false) }) it("persists from an arcadia login and clears on sign-out", () => { const session = persistFromArcadiaLogin( { access_token: "tok-123", refresh_token: "ref-456" }, { id: "u1", email: "alice@example.com", full_name: "Alice" }, ) expect(session.email).toBe("alice@example.com") expect(session.name).toBe("Alice") expect(session.token).toBe("tok-123") expect(hasSession()).toBe(true) expect(sessionStorage.getItem("arcadia_access_token")).toBe("tok-123") signOut() expect(loadSession()).toBeNull() expect(sessionStorage.getItem("arcadia_access_token")).toBeNull() }) it("updates the stored session identity in place", () => { persistFromArcadiaLogin( { access_token: "tok" }, { id: "u1", email: "a@x.com", full_name: "Alice" }, ) updateSessionUser({ name: "Alice Smith", email: "alice@x.com" }) const s = loadSession() expect(s?.name).toBe("Alice Smith") expect(s?.email).toBe("alice@x.com") expect(s?.token).toBe("tok") }) })