diff --git a/packages/tables/.stubs.php b/packages/tables/.stubs.php index 60716cbc5e..6000add502 100644 --- a/packages/tables/.stubs.php +++ b/packages/tables/.stubs.php @@ -53,7 +53,7 @@ namespace Livewire\Features\SupportTesting { public function setTableBulkActionData(array $data): static {} - public function assertTableBulkActionDataSet(array $data): static {} + public function assertTableBulkActionDataSet(array | Closure $state): static {} public function callTableBulkAction(string $name, array | Collection $records, array $data = [], array $arguments = []): static {} diff --git a/packages/tables/src/Testing/TestsBulkActions.php b/packages/tables/src/Testing/TestsBulkActions.php index 00aadca77c..c7f58b7939 100644 --- a/packages/tables/src/Testing/TestsBulkActions.php +++ b/packages/tables/src/Testing/TestsBulkActions.php @@ -70,9 +70,15 @@ class TestsBulkActions public function assertTableBulkActionDataSet(): Closure { - return function (array $data): static { - foreach (Arr::dot($data, prepend: 'mountedTableBulkActionData.') as $key => $value) { - $this->assertSet($key, $value); + return function (array | Closure $state): static { + if ($state instanceof Closure) { + $state = $state($this->get('mountedTableBulkActionData')); + } + + if (is_array($state)) { + foreach (Arr::dot($state, prepend: 'mountedTableBulkActionData.') as $key => $value) { + $this->assertSet($key, $value); + } } return $this; diff --git a/tests/src/Tables/Actions/BulkActionTest.php b/tests/src/Tables/Actions/BulkActionTest.php index 155407ea8a..152bf1b18e 100644 --- a/tests/src/Tables/Actions/BulkActionTest.php +++ b/tests/src/Tables/Actions/BulkActionTest.php @@ -53,7 +53,10 @@ it('can set default bulk action data when mounted', function () { ->mountTableBulkAction('data', records: $posts) ->assertTableBulkActionDataSet([ 'foo' => 'bar', - ]); + ]) + ->assertTableBulkActionDataSet(function (array $data): bool { + return $data['foo'] === 'bar'; + }); }); it('can call a bulk action with arguments', function () {