fix: acknowledge pi maintenance barrier
This commit is contained in:
@@ -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");
|
||||
});
|
||||
Reference in New Issue
Block a user