import React from 'react' import { screen, render, fireEvent } from '@toptal/picasso-test-utils' import { FormCompound as Form } from '../FormCompound' import type { FormConfigProps } from './FormConfig' const TEXT_INPUT_LABEL = 'Test text field' const renderForm = (configProps: FormConfigProps) => { return render(
{}}> Submit
) } describe('Form.ConfigProvider', () => { it('validate only on submit', async () => { renderForm({ validateOnSubmit: true }) fireEvent.blur(screen.getByLabelText(TEXT_INPUT_LABEL)) expect( screen.queryByText('Please complete this field.') ).not.toBeInTheDocument() fireEvent.click(screen.getByRole('button', { name: 'Submit' })) expect( await screen.findByText('Please complete this field.') ).toBeInTheDocument() }) it('validate normally on blur / change', async () => { renderForm({ validateOnSubmit: false }) fireEvent.blur(screen.getByLabelText(TEXT_INPUT_LABEL)) expect(screen.getByText('Please complete this field.')).toBeInTheDocument() }) })