soyhuce / pest-plugin-laravel
Custom extensions for Laravel integration into Pest
1.0.0
2025-06-11 08:46 UTC
Requires
- php: ^8.4
- illuminate/auth: ^12.0
- pestphp/pest: ^3.7.5
- pestphp/pest-plugin: ^3.0.0
- soyhuce/laravel-testing: ^2.13
Requires (Dev)
- pestphp/pest-dev-tools: ^3.4.0
- spatie/laravel-data: ^4.15
README
Installation
You can install the package via composer:
composer require soyhuce/pest-plugin-laravel --dev
Usage
Expectations
toBeModel
expects that the value matches current model
expect($model)->toBeModel($expectedModel)
toBeCollection
expects that the collection matches current collection
expect($collection)->toBeCollection(new Collection([1,2,3])); /// Expected collection can be given as array expect($collection)->toBeCollection([1,2,3]);
Keys and order of the collections are checked and must match.
toBeCollectionCanonicalizing
expects that the collection matches current collection, ignoring order
expect($collection)->toBeCollectionCanonicalizing(new Collection([1,2,3])); /// Expected collection can be given as array expect($collection)->toBeCollectionCanonicalizing([3,1,2]);
Keys of the collections are checked and must match.
toBeAbleTo
expect that the autenticatable can perform the given action
expect($user)->toBeAbleTo('update', $post);
Data expectations : require spatie/laravel-data
package
toBeData
expects that the value matches current data object
expect($data)->toBeData(new UserData(['name' => 'John Doe']));
toBeDataCollection
expects that the collection matches current data collection
expect($dataCollection)->toBeDataCollection(new UserDataCollection([ new UserData(['name' => 'John Doe']), new UserData(['name' => 'Jane Doe']), ])); // Expected collection can be given as array expect($dataCollection)->toBeDataCollection([['name' => 'John Doe'], ['name' => 'Jane Doe']]);