fix(supervisor): resume legacy changed-source reviews
This commit is contained in:
@@ -50,6 +50,19 @@ it.each(['zh-CN', 'en-US'] as const)('retains operational failure details and re
|
||||
expect(screen.getByRole('button', { name: copy.reviewSettings.resume })).toBeEnabled()
|
||||
})
|
||||
|
||||
it('allows continuing a legacy source-change failure', async () => {
|
||||
const copy = i18nResources['zh-CN'].heartbeat
|
||||
const resume = vi.fn().mockResolvedValue(undefined)
|
||||
vi.stubGlobal('goodbuddy', { supervision: { activity: vi.fn().mockResolvedValue([{
|
||||
...row, status: 'failed', supervisionStatus: 'failed',
|
||||
error: 'Review source changed or was removed',
|
||||
reviewProgress: { runId: 'saved-run', batches: 1, characters: 1000, sources: 2, remainingSources: 1, restartRequired: true, complete: false }
|
||||
}]), resume } })
|
||||
render(<SupervisorActivity active projects={[]} onOpenResult={vi.fn()} />)
|
||||
fireEvent.click(await screen.findByRole('button', { name: copy.reviewSettings.resume }))
|
||||
await waitFor(() => expect(resume).toHaveBeenCalledWith({ runId: 'saved-run' }))
|
||||
})
|
||||
|
||||
it('shows durable progress, pauses and continues the same run, and expands retained facts', async () => {
|
||||
const progress = { runId: 'saved-run', batches: 1, characters: 1000, sources: 2, remainingSources: 1, complete: false }
|
||||
const activity = vi.fn().mockResolvedValue([{ ...row, reviewProgress: progress }])
|
||||
|
||||
@@ -186,7 +186,7 @@ export function SupervisorActivity({ active, projects, onOpenResult, configId, c
|
||||
<button type="button" className="secondary-button" disabled={!!pending || !!stoppingKind} onClick={() => void control(row, 'pause')}>{t('reviewSettings.pause')}</button>
|
||||
<button type="button" className="danger-ghost" disabled={!!pending || !!stoppingKind} onClick={() => void control(row, 'cancel')}>{t('reviewSettings.cancel')}</button>
|
||||
</>}
|
||||
{!stoppingKind && !row.reviewProgress.complete && !row.reviewProgress.restartRequired && (row.supervisionStatus === 'paused' || row.supervisionStatus === 'failed') && <button type="button" className="secondary-button" disabled={!!pending || execution.active} onClick={() => void control(row, 'resume')}>{t(row.reviewProgress.phase === 'summarizing' ? 'activity.resumeMerge' : row.reviewProgress.phase === 'saving' ? 'activity.resumeSave' : 'reviewSettings.resume')}</button>}
|
||||
{!stoppingKind && !row.reviewProgress.complete && (row.supervisionStatus === 'paused' || row.supervisionStatus === 'failed') && <button type="button" className="secondary-button" disabled={!!pending || execution.active} onClick={() => void control(row, 'resume')}>{t(row.reviewProgress.phase === 'summarizing' ? 'activity.resumeMerge' : row.reviewProgress.phase === 'saving' ? 'activity.resumeSave' : 'reviewSettings.resume')}</button>}
|
||||
<button type="button" className="secondary-button" aria-expanded={expanded === row.id} aria-controls={`batches-${row.id}`} onClick={() => setExpanded(expanded === row.id ? undefined : row.id)}>{t('reviewSettings.facts')}</button>
|
||||
</div>
|
||||
</>}
|
||||
|
||||
Reference in New Issue
Block a user