ldc-boutique-cnc-sable/tests/Unit/Infra/Adapters/Services/LaravelTransactionManagerTest.php
2026-10-27 09:58:12 +01:00

29 lines
763 B
PHP

<?php
declare(strict_types=1);
use Illuminate\Support\Facades\DB;
use Infrastructure\Adapters\Services\LaravelTransactionManager;
use Tests\TestCase;
uses(TestCase::class);
describe('LaravelTransactionManager', function () {
it('executes callback within a transaction', function () {
// GIVEN
$manager = new LaravelTransactionManager();
$expectedResult = 'success';
$callback = fn () => $expectedResult;
DB::shouldReceive('transaction')
->once()
->andReturnUsing(function ($closure) {
return $closure();
});
// WHEN
$result = $manager->execute($callback);
// THEN
expect($result)->toBe($expectedResult);
});
});