From d906e2c1111799c1cc23ef049f46a4b5bd3ea715 Mon Sep 17 00:00:00 2001 From: Niek Otten Date: Fri, 4 Sep 2026 10:46:28 +0200 Subject: [PATCH] test(portal-behandel): a refresh must clear a stale load failure (refs #162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the first read fails the werkbak shows its error until the behandelaar reloads — the very thing this slice removes. Fails with "expected

to be null". Co-Authored-By: Claude Opus 5 (1M context) --- .../src/app/werkbak/werkbak-page.spec.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/behandel/src/app/werkbak/werkbak-page.spec.ts b/apps/behandel/src/app/werkbak/werkbak-page.spec.ts index 202953b..d704561 100644 --- a/apps/behandel/src/app/werkbak/werkbak-page.spec.ts +++ b/apps/behandel/src/app/werkbak/werkbak-page.spec.ts @@ -145,6 +145,30 @@ describe('WerkbakPage', () => { } }); + it('clears a load failure once a refresh succeeds', async () => { + // Without this the werkbak stays stuck on the error until the behandelaar reloads — the very + // thing this slice removes. A recovered read must put the rows back. + vi.useFakeTimers(); + try { + const getBehandelWerkbak = vi + .fn() + .mockReturnValueOnce(throwError(() => new Error('503'))) + .mockReturnValue(of(sample)); + const { providers } = setup({ getBehandelWerkbak }); + const { detectChanges } = await render(WerkbakPage, { providers }); + + expect(screen.getByText(/kon de werkbak niet laden/i)).toBeTruthy(); + + vi.advanceTimersByTime(WERKBAK_REFRESH_MS); + detectChanges(); + + expect(screen.queryByText(/kon de werkbak niet laden/i)).toBeNull(); + expect(screen.getByText('reg-1')).toBeTruthy(); + } finally { + vi.useRealTimers(); + } + }); + it('shows an empty state when the werkbak has no items', async () => { const { providers } = setup({ getBehandelWerkbak: vi.fn().mockReturnValue(of([])) }); await render(WerkbakPage, { providers });