soyhuce/pest-plugin-laravel

Custom extensions for Laravel integration into Pest

1.0.0 2025-06-11 08:46 UTC

This package is auto-updated.

Last update: 2025-06-11 09:04:09 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub static analysis Action Status GitHub Pint Action Status Total Downloads

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']]);