Helpers for testing forms with Vitest and @testing-library/react.
npm install -D @testing-library/react @testing-library/user-eventimport { renderForm, fillField, submitForm } from '@letar/forms/testing'
it('submits contact form', async () => {
const { onSubmit } = renderForm(ContactForm)
await fillField('name', 'Ivan')
await fillField('email', 'ivan@test.com')
await submitForm()
expect(onSubmit).toHaveBeenCalled()
})import { renderForm, fillField, submitForm, expectFieldError } from '@letar/forms/testing'
it('shows validation errors', async () => {
renderForm(ContactForm)
await fillField('email', 'not-an-email')
await submitForm()
expectFieldError('email', 'Invalid email')
})// Rendering
renderForm(Component, options?) // Render with ChakraProvider
TestWrapper // Standalone ChakraProvider wrapper
// Interaction
fillField(name, value) // Fill field by data-field-name
submitForm(buttonText?) // Click submit button
// Assertions
expectFieldError(name, message) // Assert error shown
expectNoFieldError(name) // Assert no errors
expectFieldValue(name, value) // Assert field value
// Multi-step
goToStep(step) // Navigate to step
expectActiveStep(step) // Assert current step
// Arrays
addItem(listName?) // Add list item
removeItem(index, listName?) // Remove list item
expectItemCount(listName, count) // Assert item count