TAP version 13 # Subtest: replayed enqueue returns one job with original schedule and normalized object keys ok 1 - replayed enqueue returns one job with original schedule and normalized object keys --- duration_ms: 2.7446 type: 'test' ... # Subtest: changed payload or retry limit cannot reuse an idempotency key ok 2 - changed payload or retry limit cannot reuse an idempotency key --- duration_ms: 0.9082 type: 'test' ... # Subtest: future jobs are not claimed early and due jobs follow availability order ok 3 - future jobs are not claimed early and due jobs follow availability order --- duration_ms: 0.7665 type: 'test' ... # Subtest: an active lease excludes a second worker and acknowledgment completes the job ok 4 - an active lease excludes a second worker and acknowledgment completes the job --- duration_ms: 0.7557 type: 'test' ... # Subtest: failure uses bounded exponential retry delays then moves to dead letters ok 5 - failure uses bounded exponential retry delays then moves to dead letters --- duration_ms: 1.3855 type: 'test' ... # Subtest: manual dead-letter requeue resets attempts and uses a fresh lease token ok 6 - manual dead-letter requeue resets attempts and uses a fresh lease token --- duration_ms: 0.9808 type: 'test' ... # Subtest: expired worker is fenced when another worker recovers its job ok 7 - expired worker is fenced when another worker recovers its job --- duration_ms: 0.884 type: 'test' ... # Subtest: expiry is enforced even before a recovery claim runs ok 8 - expiry is enforced even before a recovery claim runs --- duration_ms: 0.7701 type: 'test' ... # Subtest: the final abandoned attempt goes to dead letters without another delivery ok 9 - the final abandoned attempt goes to dead letters without another delivery --- duration_ms: 0.7547 type: 'test' ... # Subtest: only dead-letter jobs can be manually requeued ok 10 - only dead-letter jobs can be manually requeued --- duration_ms: 0.5845 type: 'test' ... # Subtest: invalid timing and JSON payloads do not create jobs ok 11 - invalid timing and JSON payloads do not create jobs --- duration_ms: 0.469 type: 'test' ... # Subtest: jobs and abandoned leases survive closing and reopening the database ok 12 - jobs and abandoned leases survive closing and reopening the database --- duration_ms: 21.4979 type: 'test' ... # Subtest: four separate processes racing for one job produce exactly one lease ok 13 - four separate processes racing for one job produce exactly one lease --- duration_ms: 131.7674 type: 'test' ... 1..13 # tests 13 # suites 0 # pass 13 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 235.3658