fix: acknowledge pi maintenance barrier

This commit is contained in:
2026-08-04 19:32:05 +02:00
parent 0b9ad7f53f
commit 5b3ce93e31
11 changed files with 168 additions and 52 deletions
+19
View File
@@ -0,0 +1,19 @@
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");
});