test(briefwechsel): convert 3 .not.toThrow to localStorage / container assertions

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-11 17:49:06 +02:00
parent cc0820d32f
commit 2d4cdfcba4

View File

@@ -114,41 +114,50 @@ describe('briefwechsel/+ page', () => {
expect(document.body.textContent).toContain('Brief 1'); expect(document.body.textContent).toContain('Brief 1');
}); });
it('persists the recent person when senderName is set after navigation', async () => { it('writes the senderName to localStorage when sender filter is set on mount', async () => {
// localStorage mock — confirm no throw on parsing/writing path
localStorage.removeItem('korrespondenz_recent_persons'); localStorage.removeItem('korrespondenz_recent_persons');
expect(() => render(BriefwechselPage, {
render(BriefwechselPage, { props: {
props: { data: baseData({
data: baseData({ filters: { senderId: 'p1', receiverId: '', from: '', to: '', dir: 'DESC' },
filters: { senderId: 'p1', receiverId: '', from: '', to: '', dir: 'DESC' }, initialValues: { senderName: 'Anna Schmidt', receiverName: '' }
initialValues: { senderName: 'Anna Schmidt', receiverName: '' } })
}) }
} });
})
).not.toThrow(); // persistRecentPerson runs in onMount — the persisted entry must include the name.
await vi.waitFor(() => {
const stored = localStorage.getItem('korrespondenz_recent_persons');
expect(stored).toContain('Anna Schmidt');
});
}); });
it('handles malformed localStorage data gracefully on mount', async () => { it('falls back to an empty recent-persons list when localStorage is malformed', async () => {
localStorage.setItem('korrespondenz_recent_persons', 'not-json'); localStorage.setItem('korrespondenz_recent_persons', 'not-json');
expect(() => render(BriefwechselPage, {
render(BriefwechselPage, { props: { data: baseData() }
props: { data: baseData() } });
})
).not.toThrow(); // Page still mounts; the malformed entry must not break rendering. The page renders
// a max-w-7xl container at the root.
expect(document.querySelector('.max-w-7xl')).not.toBeNull();
localStorage.removeItem('korrespondenz_recent_persons'); localStorage.removeItem('korrespondenz_recent_persons');
}); });
it('renders without throwing when senderName is set (persistRecentPerson path)', async () => { it('appends the senderName when only sender is set on mount (persistRecentPerson path)', async () => {
expect(() => localStorage.removeItem('korrespondenz_recent_persons');
render(BriefwechselPage, { render(BriefwechselPage, {
props: { props: {
data: baseData({ data: baseData({
filters: { senderId: 'p-test', receiverId: '', from: '', to: '', dir: 'DESC' }, filters: { senderId: 'p-test', receiverId: '', from: '', to: '', dir: 'DESC' },
initialValues: { senderName: 'Test Person', receiverName: '' } initialValues: { senderName: 'Test Person', receiverName: '' }
}) })
} }
}) });
).not.toThrow();
await vi.waitFor(() => {
const stored = localStorage.getItem('korrespondenz_recent_persons');
expect(stored).toContain('Test Person');
});
}); });
}); });