import assert from "node:assert/strict"; import test from "node:test"; import { createShutdownService } from "../main/app/shutdown-service"; test("shutdown service reuses the same stop promise while stopping", async () => { let stopCalls = 0; let releaseStop: () => void = () => { throw new Error("stop promise was not created"); }; const service = createShutdownService( () => new Promise((resolve) => { stopCalls += 1; releaseStop = resolve; }), ); const first = service.stop(); const second = service.stop(); assert.equal(first, second); assert.equal(stopCalls, 1); assert.equal(service.getState(), "stopping"); releaseStop(); await first; assert.equal(service.getState(), "stopped"); await service.stop(); assert.equal(stopCalls, 1); });