Web search and content fetching extension for Pi using the Linkup API.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";import { ensureLinkupReady } from "../../src/lib/init";
describe("init", () => { let originalApiKey: string | undefined;
beforeEach(() => { originalApiKey = process.env.LINKUP_API_KEY; });
afterEach(() => { if (originalApiKey !== undefined) { process.env.LINKUP_API_KEY = originalApiKey; } else { delete process.env.LINKUP_API_KEY; } });
describe("ensureLinkupReady", () => { it("returns false and binds session_start listener when API key is missing", async () => { delete process.env.LINKUP_API_KEY;
const mockOn = vi.fn(); const pi = { on: mockOn } as unknown as Parameters< typeof ensureLinkupReady >[0];
const result = await ensureLinkupReady(pi);
expect(result).toBe(false); expect(mockOn).toHaveBeenCalledWith( "session_start", expect.any(Function), ); });
it("listener calls ctx.ui.notify with correct text and warning level", async () => { delete process.env.LINKUP_API_KEY;
const mockNotify = vi.fn(); const mockOn = vi.fn(); const pi = { on: mockOn } as unknown as Parameters< typeof ensureLinkupReady >[0];
await ensureLinkupReady(pi);
const listener = mockOn.mock.calls[0][1]; const ctx = { hasUI: true, ui: { notify: mockNotify }, };
listener({}, ctx);
expect(mockNotify).toHaveBeenCalledWith( "LINKUP_API_KEY not set. Linkup extension disabled.", "warning", ); });
it("returns true when API key is present", async () => { process.env.LINKUP_API_KEY = "test-key";
const pi = { on: vi.fn() } as unknown as Parameters< typeof ensureLinkupReady >[0];
const result = await ensureLinkupReady(pi);
expect(result).toBe(true); });
it("does not bind listener when API key is present", async () => { process.env.LINKUP_API_KEY = "test-key";
const mockOn = vi.fn(); const pi = { on: mockOn } as unknown as Parameters< typeof ensureLinkupReady >[0];
await ensureLinkupReady(pi);
expect(mockOn).not.toHaveBeenCalled(); }); });});