ux(transcription): show error banner when bulk mark-all-reviewed fails #627

Merged
marcel merged 15 commits from feat/issue-356-mark-all-reviewed-error into main 2026-05-19 22:09:02 +02:00
Showing only changes of commit 76ef54e064 - Show all commits

View File

@@ -280,6 +280,25 @@ describe('createTranscriptionBlocks.markAllReviewed', () => {
await expect(ctrl.markAllReviewed()).rejects.toThrow('INTERNAL_ERROR');
expect(ctrl.blocks[0].reviewed).toBe(false);
});
it('throws INTERNAL_ERROR when PUT returns non-JSON body (e.g. nginx 502)', async () => {
const fetchImpl = vi.fn(async (url: RequestInfo | URL, init?: RequestInit) => {
const u = url.toString();
const method = init?.method ?? 'GET';
if (u.includes('/review-all') && method === 'PUT') {
return new Response('Bad Gateway', { status: 502 });
}
return new Response(JSON.stringify([baseBlock({ id: 'b-1', reviewed: false })]), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
});
const ctrl = createTranscriptionBlocks({ documentId: () => 'doc-1', fetchImpl });
await ctrl.load();
await expect(ctrl.markAllReviewed()).rejects.toThrow('INTERNAL_ERROR');
expect(ctrl.blocks[0].reviewed).toBe(false);
});
});
describe('createTranscriptionBlocks.createFromDraw', () => {