diff --git a/packages/tables/.stubs.php b/packages/tables/.stubs.php index aca33e01afb..af2d05b4df5 100644 --- a/packages/tables/.stubs.php +++ b/packages/tables/.stubs.php @@ -3,10 +3,10 @@ namespace Livewire\Features\SupportTesting { use Closure; - use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Collection; - class Testable { + class Testable + { public function mountTableAction(string | array $name, $record = null): static {} public function unmountTableAction(): static {} @@ -51,6 +51,8 @@ public function assertHasNoTableActionErrors(array $keys = []): static {} public function mountTableBulkAction(string $name, array | Collection $records): static {} + public function unmountTableBulkAction(): static {} + public function setTableBulkActionData(array $data): static {} public function assertTableBulkActionDataSet(array | Closure $state): static {} diff --git a/packages/tables/src/Testing/TestsBulkActions.php b/packages/tables/src/Testing/TestsBulkActions.php index c7f58b7939c..ea1a03a04b5 100644 --- a/packages/tables/src/Testing/TestsBulkActions.php +++ b/packages/tables/src/Testing/TestsBulkActions.php @@ -57,6 +57,15 @@ function ($record) { }; } + public function unmountTableBulkAction(): Closure + { + return function (): static { + $this->call('unmountTableBulkAction'); + + return $this; + }; + } + public function setTableBulkActionData(): Closure { return function (array $data): static { diff --git a/tests/src/Tables/Actions/BulkActionTest.php b/tests/src/Tables/Actions/BulkActionTest.php index 152bf1b18eb..f0db4574e23 100644 --- a/tests/src/Tables/Actions/BulkActionTest.php +++ b/tests/src/Tables/Actions/BulkActionTest.php @@ -7,6 +7,7 @@ use Illuminate\Support\Str; use function Filament\Tests\livewire; +use function Pest\Laravel\assertNotSoftDeleted; use function Pest\Laravel\assertSoftDeleted; uses(TestCase::class); @@ -22,6 +23,20 @@ } }); +it('can unmount bulk action', function () { + $posts = Post::factory()->count(10)->create(); + + livewire(PostsTable::class) + ->mountTableBulkAction(DeleteBulkAction::class, $posts) + ->assertTableBulkActionMounted(DeleteBulkAction::class) + ->unmountTableBulkAction() + ->assertTableBulkActionNotMounted(DeleteBulkAction::class); + + foreach ($posts as $post) { + assertNotSoftDeleted($post); + } +}); + it('can call a bulk action with data', function () { $posts = Post::factory()->count(10)->create();