Files
agent/apps/web_v1/scripts/recovery-refresh.test.mjs

30 lines
748 B
JavaScript

import assert from 'node:assert/strict'
import test from 'node:test'
import { runRecoveryRefresh } from '../src/app/recovery-refresh.ts'
test('a failed recovery never announces refreshed success', async () => {
const events = []
await assert.rejects(() => runRecoveryRefresh(
async () => {
events.push('refresh')
throw new Error('still stale')
},
() => events.push('success'),
), /still stale/)
assert.deepEqual(events, ['refresh'])
})
test('recovery announces success only after every requested refresh resolves', async () => {
const events = []
await runRecoveryRefresh(
async () => events.push('refresh'),
() => events.push('success'),
)
assert.deepEqual(events, ['refresh', 'success'])
})