diff --git a/tests/Unit/Traits/Helpers/FilterHelpersTest.php b/tests/Unit/Traits/Helpers/FilterHelpersTest.php index 25aac3341..367dd1d1a 100644 --- a/tests/Unit/Traits/Helpers/FilterHelpersTest.php +++ b/tests/Unit/Traits/Helpers/FilterHelpersTest.php @@ -2,6 +2,9 @@ namespace Rappasoft\LaravelLivewireTables\Tests\Unit\Traits\Helpers; +use Illuminate\Support\Facades\Event; +use Rappasoft\LaravelLivewireTables\Events\FilterApplied; +use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable; use Rappasoft\LaravelLivewireTables\Tests\TestCase; use Rappasoft\LaravelLivewireTables\Views\Filters\DateFilter; use Rappasoft\LaravelLivewireTables\Views\Filters\DateTimeFilter; @@ -207,4 +210,38 @@ public function test_can_check_if_filter_layout_slidedown_is_hidden(): void $this->assertFalse($this->basicTable->getFilterSlideDownDefaultStatus()); } + + public function test_event_fires_for_filter(): void + { + Event::fake(); + + $testTable = new class extends PetsTable + { + public function configure(): void + { + parent::configure(); + } + }; + $testTable->configure(); + $testTable->boot(); + $testTable->bootedComponentUtilities(); + $testTable->bootedWithData(); + $testTable->bootedWithColumns(); + $testTable->bootedWithColumnSelect(); + $testTable->bootedWithSecondaryHeader(); + $testTable->booted(); + + $testTable->setFilter('breed_id_filter', '2'); + $testTable->updatedFilterComponents('2', 'breed_id_filter'); + $this->assertSame(['breed_id_filter' => '2'], $testTable->getAppliedFiltersWithValues()); + Event::assertNotDispatched(FilterApplied::class); + + $testTable->enableFilterAppliedEvent(); + + $testTable->setFilter('breed_id_filter', '3'); + $testTable->updatedFilterComponents('3', 'breed_id_filter'); + $this->assertSame(['breed_id_filter' => '3'], $testTable->getAppliedFiltersWithValues()); + Event::assertDispatched(FilterApplied::class); + + } }