import { describe, expect, it, vi } from "vitest"; import { checkReadiness } from "./readiness"; describe("readiness checks", () => { it("reports ready only when every dependency succeeds", async () => { await expect( checkReadiness({ database: async () => true, redis: async () => "PONG" }), ).resolves.toEqual({ status: "ready", checks: { database: "ok", redis: "ok" }, }); await expect( checkReadiness({ database: async () => true, redis: async () => { throw new Error("offline"); }, }), ).resolves.toEqual({ status: "not-ready", checks: { database: "ok", redis: "failed" }, }); }); it("bounds a stalled dependency", async () => { vi.useFakeTimers(); const result = checkReadiness( { database: () => new Promise(() => undefined) }, 100, ); vi.advanceTimersByTime(100); await expect(result).resolves.toEqual({ status: "not-ready", checks: { database: "failed" }, }); vi.useRealTimers(); }); });