import { test, expect } from "vitest"; import { MaintenanceBarrier } from "../src/runtime/maintenance-gate.js"; test("activation waits for an in-flight admission lease and rejects later admissions", async () => { const gate = new MaintenanceBarrier(); const release = gate.acquire(); expect(release).toBeTypeOf("function"); let acknowledged = false; const activation = gate.activate().then(() => { acknowledged = true; }); await Promise.resolve(); expect(acknowledged).toBe(false); expect(gate.acquire()).toBeUndefined(); release?.(); await activation; expect(acknowledged).toBe(true); expect(gate.status()).toEqual({ active: true, admissions: 0 }); gate.deactivate(); expect(gate.acquire()).toBeTypeOf("function"); });