import assert from "node:assert/strict"; import test from "node:test"; import { getProfile } from "./data.ts"; const originalFetch = globalThis.fetch; const originalDid = process.env.CAMERON_DID; const originalTimeout = process.env.PROFILE_FETCH_TIMEOUT_MS; function restoreEnvironment(): void { globalThis.fetch = originalFetch; if (originalDid === undefined) delete process.env.CAMERON_DID; else process.env.CAMERON_DID = originalDid; if (originalTimeout === undefined) delete process.env.PROFILE_FETCH_TIMEOUT_MS; else process.env.PROFILE_FETCH_TIMEOUT_MS = originalTimeout; } test("shares one in-flight Bluesky profile request across concurrent renders", async () => { process.env.CAMERON_DID = "did:example:profile-singleflight"; let fetchCalls = 0; let releaseFetch: (() => void) | undefined; globalThis.fetch = (() => { fetchCalls += 1; return new Promise((resolve) => { releaseFetch = () => resolve(Response.json({ did: "did:example:profile-singleflight", handle: "cameron.example", })); }); }) as typeof fetch; try { const first = getProfile(); const second = getProfile(); await new Promise((resolve) => setImmediate(resolve)); assert.equal(fetchCalls, 1); releaseFetch?.(); assert.deepEqual(await first, await second); } finally { restoreEnvironment(); } }); test("fails open after the bounded profile timeout", async () => { process.env.CAMERON_DID = "did:example:profile-timeout"; process.env.PROFILE_FETCH_TIMEOUT_MS = "20"; let fetchCalls = 0; globalThis.fetch = ((_input, init) => { fetchCalls += 1; return new Promise((_resolve, reject) => { const fallback = setTimeout( () => reject(new Error("profile fetch was not aborted")), 500, ); init?.signal?.addEventListener( "abort", () => { clearTimeout(fallback); reject(init.signal?.reason ?? new Error("aborted")); }, { once: true }, ); }); }) as typeof fetch; try { const startedAt = Date.now(); assert.equal(await getProfile(), null); assert.equal(fetchCalls, 1); assert.ok(Date.now() - startedAt < 250); } finally { restoreEnvironment(); } });