diff --git a/tests/background-index.test.ts b/tests/background-index.test.ts index d184eb6..d6de2ea 100644 --- a/tests/background-index.test.ts +++ b/tests/background-index.test.ts @@ -47,4 +47,84 @@ describe("background-index", () => { ); expect(sendResponse).toHaveBeenCalledWith({ ok: true }); }); + + test("responds to auth:get-state with auth status", async () => { + const listeners: Array< + (message: unknown, sender: unknown, sendResponse: (response: unknown) => void) => boolean | void + > = []; + const sendResponse = vi.fn(); + + registerBackgroundMessageHandler( + { + runtime: { + onMessage: { + addListener(listener) { + listeners.push(listener); + } + } + } + }, + { + authController: { + getAccessToken: vi.fn(), + getAuthState: vi.fn(async () => ({ isAuthenticated: false })), + signIn: vi.fn(), + signOut: vi.fn() + } + } + ); + + const result = listeners[0]({ type: "auth:get-state" }, {}, sendResponse); + + expect(result).toBe(true); + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(sendResponse).toHaveBeenCalledWith({ + ok: true, + type: "auth:state", + value: { isAuthenticated: false } + }); + }); + + test("responds to auth:get-access-token with the current token", async () => { + const listeners: Array< + (message: unknown, sender: unknown, sendResponse: (response: unknown) => void) => boolean | void + > = []; + const sendResponse = vi.fn(); + + registerBackgroundMessageHandler( + { + runtime: { + onMessage: { + addListener(listener) { + listeners.push(listener); + } + } + } + }, + { + authController: { + getAccessToken: vi.fn(async () => "test-access-token"), + getAuthState: vi.fn(), + signIn: vi.fn(), + signOut: vi.fn() + } + } + ); + + const result = listeners[0]( + { type: "auth:get-access-token" }, + {}, + sendResponse + ); + + expect(result).toBe(true); + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(sendResponse).toHaveBeenCalledWith({ + ok: true, + type: "auth:token", + value: { accessToken: "test-access-token" } + }); + }); });