diff --git a/frontend/src/lib/components/StammbaumSidePanel.svelte.spec.ts b/frontend/src/lib/components/StammbaumSidePanel.svelte.spec.ts index f924bbd4..4d426a02 100644 --- a/frontend/src/lib/components/StammbaumSidePanel.svelte.spec.ts +++ b/frontend/src/lib/components/StammbaumSidePanel.svelte.spec.ts @@ -43,4 +43,30 @@ describe('StammbaumSidePanel', () => { btn!.click(); expect(onClose).toHaveBeenCalledOnce(); }); + + it('renders the person displayName as heading', async () => { + render(StammbaumSidePanel, { node: makeNode(), onClose: vi.fn(), canWrite: false }); + await expect.element(page.getByText('Alice Müller')).toBeInTheDocument(); + }); + + it('shows empty-relationships message when no direct relationships are loaded', async () => { + render(StammbaumSidePanel, { node: makeNode(), onClose: vi.fn(), canWrite: false }); + await expect.element(page.getByText('Noch keine Beziehungen bekannt.')).toBeInTheDocument(); + }); + + it('shows loading indicator while fetching', async () => { + let resolveFirst: (v: unknown) => void; + vi.stubGlobal( + 'fetch', + vi.fn().mockImplementation( + () => + new Promise((resolve) => { + resolveFirst = resolve; + }) + ) + ); + render(StammbaumSidePanel, { node: makeNode(), onClose: vi.fn(), canWrite: false }); + await expect.element(page.getByText('…')).toBeInTheDocument(); + resolveFirst!({ ok: true, json: () => Promise.resolve([]) }); + }); });