2.7 KiB
title
| title |
|---|
| Testing |
All examples in this guide will be written using Pest. However, you can easily adapt this to a 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:
Form existance
To check that a Livewire component has a form, use assertFormExists():
use function Pest\Livewire\livewire;
it('has a form', function () {
livewire(CreatePost::class)
->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():
use function Pest\Livewire\livewire;
it('has a title field', function () {
livewire(CreatePost::class)
->assertFormFieldExists('title');
});
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():
use function Pest\Livewire\livewire;
test('title is visible', function () {
livewire(CreatePost::class)
->assertFormFieldIsVisible('title');
});
Or to ensure that a field is hidden you can pass the name to assertFormFieldIsHidden():
use function Pest\Livewire\livewire;
test('title is hidden', function () {
livewire(CreatePost::class)
->assertFormFieldIsHidden('title');
});
Note that for both
assertFormFieldIsHidden()andassertFormFieldIsVisible()you can pass the name of a specific form the field belongs to as the second argument likeassertFormFieldIsHidden('title', 'createPostForm').
Disabled fields
To ensure that a field is enabled pass the name to assertFormFieldIsEnabled():
use function Pest\Livewire\livewire;
test('title is enabled', function () {
livewire(CreatePost::class)
->assertFormFieldIsEnabled('title');
});
Or to ensure that a field is disabled you can pass the name to assertFormFieldIsDisabled():
use function Pest\Livewire\livewire;
test('title is disabled', function () {
livewire(CreatePost::class)
->assertFormFieldIsDisabled('title');
});
Note that for both
assertFormFieldIsEnabled()andassertFormFieldIsDisabled()you can pass the name of a specific form the field belongs to as the second argument likeassertFormFieldIsEnabled('title', 'createPostForm').