tienvx/laravel-pact-provider
Pact Provider integration for Laravel
1,465
1
| Install | |
|---|---|
composer require tienvx/laravel-pact-provider |
|
| Latest Version: | v0.2.0 |
| PHP: | ^8.1 |
| License: | MIT |
| Last Updated: | Apr 1, 2024 |
| Links: | GitHub · Packagist |
Maintainer: tien.xuan.vo
Pact Provider Package

This Laravel Package allow testing Laravel project with Pact PHP. It support:
- Verify sending messages
- Set up provider state
- Tear down provider state
Installation
composer require tienvx/laravel-pact-provider
Documentation
Register State Handler
namespace App\StateHandler;
use Tienvx\PactProvider\Attribute\AsStateHandler;
use Tienvx\PactProvider\Model\StateValues;
use Tienvx\PactProvider\StateHandler\SetUpInterface;
use Tienvx\PactProvider\StateHandler\TearDownInterface;
#[AsStateHandler(state: 'A user with id dcd79453-7346-4423-ae6e-127c60d8dd20 exists')]
class UserHandler implements SetUpInterface, TearDownInterface
{
public function setUp(array $params): ?StateValues
{
return new StateValues([
'id' => 123,
]);
}
public function tearDown(array $params): void
{
}
}
app()->bind(UserHandler::class);
Register Message Dispatcher
namespace App\MessageDispatcher;
use Tienvx\PactProvider\Attribute\AsMessageDispatcher;
use Tienvx\PactProvider\Model\Message;
use Tienvx\PactProvider\MessageDispatcher\DispatcherInterface;
#[AsMessageDispatcher(description: 'User created message')]
class UserDispatcher implements DispatcherInterface
{
public function dispatch(): ?Message
{
}
}
app()->bind(UserDispatcher::class);
License
Related Packages
studio-design/gesso
Gesso — OpenAPI 3.0/3.1/3.2 contract testing for PHP. Framework-independent core...
5,674
10
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
634,760,849
9,707
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
408,553,772
609