feat: worker presence layer + batch-loop docs (#7)
* feat: add next_action field to update_job_status response * docs: add Batch-loop section to README * feat: presence layer — registerWorker, startHeartbeat, registerShutdownHandlers * feat: bootstrap worker presence at server startup, remove inline presence from wait-for-job * docs: document worker presence layer in CLAUDE.md * docs: refine Batch-loop intro — add 'Hier is de flow:' per implementation plan
This commit is contained in:
parent
c990d8547e
commit
f87b20744b
9 changed files with 243 additions and 108 deletions
25
__tests__/update-job-status-next-action.test.ts
Normal file
25
__tests__/update-job-status-next-action.test.ts
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import { describe, it, expect } from 'vitest'
|
||||
import { resolveNextAction } from '../src/tools/update-job-status.js'
|
||||
|
||||
describe('resolveNextAction', () => {
|
||||
it('returns wait_for_job_again when queue has jobs after done', () => {
|
||||
expect(resolveNextAction(3, 'done')).toBe('wait_for_job_again')
|
||||
})
|
||||
|
||||
it('returns queue_empty when queue is empty after done', () => {
|
||||
expect(resolveNextAction(0, 'done')).toBe('queue_empty')
|
||||
})
|
||||
|
||||
it('returns wait_for_job_again when queue has jobs after failed', () => {
|
||||
expect(resolveNextAction(1, 'failed')).toBe('wait_for_job_again')
|
||||
})
|
||||
|
||||
it('returns queue_empty when queue is empty after failed', () => {
|
||||
expect(resolveNextAction(0, 'failed')).toBe('queue_empty')
|
||||
})
|
||||
|
||||
it('returns idle for running status regardless of queue count', () => {
|
||||
expect(resolveNextAction(5, 'running')).toBe('idle')
|
||||
expect(resolveNextAction(0, 'running')).toBe('idle')
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue