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()
|
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 () => {
|
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 progress = { runId: 'saved-run', batches: 1, characters: 1000, sources: 2, remainingSources: 1, complete: false }
|
||||||
const activity = vi.fn().mockResolvedValue([{ ...row, reviewProgress: progress }])
|
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="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>
|
<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>
|
<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>
|
</div>
|
||||||
</>}
|
</>}
|
||||||
|
|||||||
Reference in New Issue
Block a user