diff --git a/frontend/src/lib/components/AddRelationshipForm.svelte b/frontend/src/lib/components/AddRelationshipForm.svelte new file mode 100644 index 00000000..0bb7fb8b --- /dev/null +++ b/frontend/src/lib/components/AddRelationshipForm.svelte @@ -0,0 +1,161 @@ + + +{#if !open} + +{:else} +
+{/if} diff --git a/frontend/src/lib/components/AddRelationshipForm.svelte.spec.ts b/frontend/src/lib/components/AddRelationshipForm.svelte.spec.ts new file mode 100644 index 00000000..5dec75e3 --- /dev/null +++ b/frontend/src/lib/components/AddRelationshipForm.svelte.spec.ts @@ -0,0 +1,40 @@ +import { describe, it, expect, afterEach, vi } from 'vitest'; +import { cleanup, render } from 'vitest-browser-svelte'; +import { page } from 'vitest/browser'; +import AddRelationshipForm from './AddRelationshipForm.svelte'; + +vi.mock('$app/forms', () => ({ enhance: () => () => {} })); +vi.mock('$lib/components/PersonTypeahead.svelte', () => ({ default: () => null })); + +afterEach(cleanup); + +describe('AddRelationshipForm', () => { + it('shows add-relationship button initially and no form', async () => { + render(AddRelationshipForm, { personId: 'person-1' }); + await expect.element(page.getByRole('button')).toBeInTheDocument(); + await expect.element(page.getByRole('combobox')).not.toBeInTheDocument(); + }); + + it('shows relationType select when add button is clicked', async () => { + render(AddRelationshipForm, { personId: 'person-1' }); + document.querySelector