From 43677ff43443d3078e79f14b14b60285097410e2 Mon Sep 17 00:00:00 2001 From: Nessar Date: Sat, 17 Oct 2026 11:22:38 +0200 Subject: [PATCH] refactor(planning): drop the unreachable late worker message guard release() already clears the worker handlers, so the released checks inside them could never run. The lifetime test now states what it checks: no handler is left for late messages. Refs #277 Co-Authored-By: Claude Opus 5.5 --- src/app/services/leave-planner-worker-lifetime.spec.ts | 2 +- src/app/services/leave-planner.service.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/services/leave-planner-worker-lifetime.spec.ts b/src/app/services/leave-planner-worker-lifetime.spec.ts index 3b5e1f5..db0b4da 100644 --- a/src/app/services/leave-planner-worker-lifetime.spec.ts +++ b/src/app/services/leave-planner-worker-lifetime.spec.ts @@ -128,7 +128,7 @@ describe('worker job lifetime', () => { expect(worker.onerror).toBeNull(); }; - it('releases the worker once on success and ignores late messages', async () => { + it('releases the worker once on success and leaves no handler for late messages', async () => { const job = await start({}); job.deliver(); expect(await job.succeeded).toBe(true); diff --git a/src/app/services/leave-planner.service.ts b/src/app/services/leave-planner.service.ts index 40e06e5..e6cccc5 100644 --- a/src/app/services/leave-planner.service.ts +++ b/src/app/services/leave-planner.service.ts @@ -323,10 +323,10 @@ function startWorkerJob( }); let released = false; worker.onmessage = (event: MessageEvent) => { - if (!released && event.data) onMessage(event.data); + if (event.data) onMessage(event.data); }; worker.onerror = () => { - if (!released) onError(); + onError(); }; latestWorkerCancels.add(supersede); return {