import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { useForm } from 'react-hook-form' import { Form } from 'ui' import { describe, expect, it } from 'vitest' import { CreateFunctionConfigParamsSection } from './CreateFunctionConfigParamsSection' type ConfigParamsFormValues = { config_params: Array<{ name: string; value: string }> } const CreateFunctionConfigParamsHarness = () => { const form = useForm({ defaultValues: { config_params: [{ name: 'search_path', value: 'public' }], }, }) return (
) } describe('CreateFunctionConfigParamsSection', () => { it('appends a new config parameter row with name and value fields', async () => { const user = userEvent.setup() render() await user.click(screen.getByRole('button', { name: 'Add a new config' })) expect(screen.getAllByPlaceholderText('parameter_name')).toHaveLength(2) expect(screen.getAllByPlaceholderText('parameter_value')).toHaveLength(2) }) it('removes an existing config parameter row', async () => { const user = userEvent.setup() render() expect(screen.getByDisplayValue('search_path')).toBeInTheDocument() await user.click(screen.getByRole('button', { name: 'Remove configuration parameter' })) expect(screen.queryByDisplayValue('search_path')).not.toBeInTheDocument() }) })