* 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
25 lines
923 B
TypeScript
25 lines
923 B
TypeScript
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')
|
|
})
|
|
})
|