diff --git a/frontend/src/lib/geschichte/JourneyItemRow.svelte.spec.ts b/frontend/src/lib/geschichte/JourneyItemRow.svelte.spec.ts index b7d62022..c22c874a 100644 --- a/frontend/src/lib/geschichte/JourneyItemRow.svelte.spec.ts +++ b/frontend/src/lib/geschichte/JourneyItemRow.svelte.spec.ts @@ -66,6 +66,26 @@ describe('JourneyItemRow — note error state', () => { }); }); +describe('JourneyItemRow — note remove error state', () => { + it('restores note and shows error when onNotePatch rejects during remove', async () => { + const onNotePatch = vi.fn().mockRejectedValue(new Error('server error')); + render(JourneyItemRow, { + item: docItem({ note: 'keep me' }), + ...defaultProps({ onNotePatch }) + }); + + await userEvent.click(page.getByText('Notiz entfernen')); + await new Promise((r) => setTimeout(r, 50)); + + // textarea should be visible again (showNote restored) + await expect + .element(page.getByRole('textbox', { name: /Kuratoren-Notiz/ })) + .toBeInTheDocument(); + // error alert should be shown + await expect.element(page.getByRole('alert')).toBeInTheDocument(); + }); +}); + describe('JourneyItemRow — interlude rules', () => { it('does not show "Notiz entfernen" for interlude items', async () => { render(JourneyItemRow, { item: interludeItem(), ...defaultProps() });