import { afterEach, describe, expect, test } from "vitest"; import { createMockProtectedApiServer } from "../scripts/mock-protected-api.mjs"; const servers: Array<{ close: () => Promise }> = []; afterEach(async () => { while (servers.length > 0) { await servers.pop()?.close(); } }); describe("mock-protected-api", () => { test("returns mock data when a Bearer token is present", async () => { const server = createMockProtectedApiServer({ port: 0 }); await server.start(); servers.push(server); const response = await fetch(`${server.baseUrl}/api/mock/protected`, { headers: { Authorization: "Bearer abc123" } }); expect(response.status).toBe(200); await expect(response.json()).resolves.toEqual( expect.objectContaining({ ok: true, source: "mock-protected-api" }) ); }); test("returns 401 when the Authorization header is missing", async () => { const server = createMockProtectedApiServer({ port: 0 }); await server.start(); servers.push(server); const response = await fetch(`${server.baseUrl}/api/mock/protected`); expect(response.status).toBe(401); await expect(response.json()).resolves.toEqual({ ok: false, error: "unauthorized" }); }); });