import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { RelationshipBuilder } from '../RelationshipBuilder' const types = [ { id: 'uuid-artist', key: 'artist', label: 'Artist' }, { id: 'uuid-release', key: 'release', label: 'Release' }, ] describe('RelationshipBuilder', () => { it('renders source + target pickers and a define button', () => { render() expect(screen.getByText('From (source)')).toBeInTheDocument() expect(screen.getByText('To (target)')).toBeInTheDocument() expect(screen.getByRole('button', { name: /define relationship/i })).toBeInTheDocument() }) it('warns and does not persist when no endpoints are chosen', async () => { const createRelationship = jest.fn().mockResolvedValue({}) const notify = { success: jest.fn(), error: jest.fn() } render( , ) await userEvent.setup().click(screen.getByRole('button', { name: /define relationship/i })) expect(createRelationship).not.toHaveBeenCalled() expect(notify.error).toHaveBeenCalled() }) it('prompts to create types first when none exist (submit disabled)', () => { render() expect(screen.getByText(/create at least one entity type first/i)).toBeInTheDocument() expect(screen.getByRole('button', { name: /define relationship/i })).toBeDisabled() }) })