Skip to main content
You are currently viewing the documentation for Filament 2.x, which is a previous version of Filament.Looking for the current stable version? Visit the 5.x documentation.
All examples in this guide will be written using Pest. However, you can easily adapt this to PHPUnit. Since the form builder works on Livewire components, you can use the Livewire testing helpers. However, we have custom testing helpers that you can use with forms:

Filling a form

To fill a form with data, pass the data to fillform():
Note that if you have multiple forms on a Livewire component, you can specify which form you want to fill using fillForm([...], 'createPostForm').
To check that a form has data, use assertFormSet():
Note that if you have multiple forms on a Livewire component, you can specify which form you want to check using assertFormSet([...], 'createPostForm').

Validation

Use assertHasFormErrors() to ensure that data is properly validated in a form:
And assertHasNoFormErrors() to ensure there are no validation errors:
Note that if you have multiple forms on a Livewire component, you can pass the name of a specific form as the second parameter like assertHasFormErrors(['title' => 'required'], 'createPostForm') or assertHasNoFormErrors([], 'createPostForm').

Form existence

To check that a Livewire component has a form, use assertFormExists():
Note that if you have multiple forms on a Livewire component, you can pass the name of a specific form like assertFormExists('createPostForm').

Fields

To ensure that a form has a given field pass the field name to assertFormFieldExists():
You may pass a function as an additional argument in order to assert that a field passes a given “truth test”. This is useful for asserting that a field has a specific configuration:
Note that if you have multiple forms on a Livewire component, you can specify which form you want to check for the existence of the field like assertFormFieldExists('title', 'createPostForm').

Hidden fields

To ensure that a field is visible pass the name to assertFormFieldIsVisible():
Or to ensure that a field is hidden you can pass the name to assertFormFieldIsHidden():
Note that for both assertFormFieldIsHidden() and assertFormFieldIsVisible() you can pass the name of a specific form the field belongs to as the second argument like assertFormFieldIsHidden('title', 'createPostForm').

Disabled fields

To ensure that a field is enabled pass the name to assertFormFieldIsEnabled():
Or to ensure that a field is disabled you can pass the name to assertFormFieldIsDisabled():
Note that for both assertFormFieldIsEnabled() and assertFormFieldIsDisabled() you can pass the name of a specific form the field belongs to as the second argument like assertFormFieldIsEnabled('title', 'createPostForm').