fix(voice): recover empty failed lessons

This commit is contained in:
zhangheng
2026-07-22 21:19:22 +08:00
parent 55084a4784
commit 80e670d72b
8 changed files with 226 additions and 13 deletions

View File

@@ -3,6 +3,7 @@ const test = require('node:test')
const {
getVoiceFailureHint,
getVoiceLessonRecoveryAction,
getVoiceLessonStatusText,
getVoicePrimaryAction,
getVoicePrimaryActionText
@@ -83,6 +84,23 @@ test('ready lessons explain whether their transcript can be added again', () =>
assert.equal(getVoiceLessonStatusText({ ...lesson, includedInGeneration: true }), '已生成反馈')
})
test('failed lessons distinguish retryable audio from empty failed records', () => {
const failedLesson = {
status: 'failed',
segments: []
}
assert.equal(getVoiceLessonRecoveryAction(failedLesson), 'rerecord')
assert.equal(getVoiceLessonRecoveryAction({
...failedLesson,
segments: [{ status: 'failed' }]
}), 'retry')
assert.equal(getVoiceLessonRecoveryAction({
...failedLesson,
status: 'ready'
}), null)
})
test('session refresh runs after a failed API action', async () => {
const expected = new Error('generation rejected')
let refreshCount = 0