diff --git a/frontend/src/lib/components/document/BulkDocumentEditLayout.svelte.spec.ts b/frontend/src/lib/components/document/BulkDocumentEditLayout.svelte.spec.ts index b800d218..32e8fdef 100644 --- a/frontend/src/lib/components/document/BulkDocumentEditLayout.svelte.spec.ts +++ b/frontend/src/lib/components/document/BulkDocumentEditLayout.svelte.spec.ts @@ -140,6 +140,25 @@ describe('BulkDocumentEditLayout', () => { expect(metadataJson).toHaveProperty('tagNames'); }); + it('save() navigates to /documents when all chunks succeed', async () => { + const mockFetch = vi.fn().mockResolvedValue({ + ok: true, + json: async () => ({ created: [], updated: [], errors: [] }) + }); + vi.stubGlobal('fetch', mockFetch); + + const { container } = render(BulkDocumentEditLayout, {}); + await addFilesViaInput(container, [makeFile('doc.pdf')]); + + const saveBtn = container.querySelector( + 'button[data-testid="bulk-save-btn"]' + ) as HTMLButtonElement; + saveBtn.click(); + + await vi.waitFor(() => expect(mockFetch).toHaveBeenCalledTimes(1), { timeout: 3000 }); + await vi.waitFor(() => expect(goto).toHaveBeenCalledWith('/documents'), { timeout: 3000 }); + }); + it('save() does not navigate when chunk returns non-ok response', async () => { const mockFetch = vi.fn().mockResolvedValue({ ok: false,