]> Piment Noir Git Repositories - poolifier.git/commitdiff
test: fix async kill handler test for vitest compatibility
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 22 Feb 2026 23:04:58 +0000 (00:04 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 22 Feb 2026 23:04:58 +0000 (00:04 +0100)
- Make test async and properly await kill handler completion
- Stub sendToMainWorker to prevent unhandled rejection
- Add assertions for sendToMainWorker call
- Remove sequence.hooks config (not needed)

tests/worker/abstract-worker.test.mjs
vitest.config.ts

index 03e4e87a12c8b1e404ea821f2e590c07be7f4a0b..90118ca65eb26531e63b5bf66b8f54efc85bb4ba 100644 (file)
@@ -8,6 +8,7 @@ import {
   WorkerChoiceStrategies,
 } from '../../lib/index.mjs'
 import { DEFAULT_TASK_NAME, EMPTY_FUNCTION } from '../../lib/utils.mjs'
+import { sleep } from '../test-utils.cjs'
 
 describe('Abstract worker test suite', () => {
   class StubWorkerWithMainWorker extends ThreadWorker {
@@ -243,14 +244,18 @@ describe('Abstract worker test suite', () => {
     )
   })
 
-  it('Verify that async kill handler is called when worker is killed', () => {
+  it('Verify that async kill handler is called when worker is killed', async () => {
     const killHandlerStub = stub().returns()
     const worker = new ClusterWorker(() => {}, {
       killHandler: async () => await Promise.resolve(killHandlerStub()),
     })
     worker.isMain = false
+    const sendToMainWorkerStub = stub(worker, 'sendToMainWorker').returns()
     worker.handleKillMessage()
+    await sleep(10)
     expect(killHandlerStub.calledOnce).toBe(true)
+    expect(sendToMainWorkerStub.calledOnce).toBe(true)
+    expect(sendToMainWorkerStub.calledWith({ kill: 'success' })).toBe(true)
   })
 
   it('Verify that getMainWorker() throw error if main worker is not set', () => {
index e80f9e30d97fc5a126f98feb31b15e023514bacc..11f1f18338506081cc779dad0aab64eecd30f3bd 100644 (file)
@@ -15,9 +15,6 @@ export default defineConfig({
     fileParallelism: false,
     hookTimeout: 30000,
     include: ['tests/**/*.test.mjs'],
-    sequence: {
-      hooks: 'list',
-    },
     setupFiles: ['./tests/vitest.setup.mjs'],
     testTimeout: 30000,
   },