From 590256bd899cf9cef712bdc18312df27a5a1cea9 Mon Sep 17 00:00:00 2001 From: Iosif Chatzimichail Date: Sun, 26 Jan 2025 16:28:53 +0200 Subject: [PATCH] Add tests --- tests/Feature/LfCheckboxFilterTest.php | 13 +++++++++++++ tests/Feature/LfDateFilterTest.php | 13 +++++++++++++ tests/Feature/LfDualRangeFilterTest.php | 20 ++++++++++++++++++++ tests/Feature/LfRadioFilterTest.php | 13 +++++++++++++ tests/Feature/LfRangeFilterTest.php | 20 ++++++++++++++++++++ tests/Feature/LfSelectFilterTest.php | 13 +++++++++++++ tests/Feature/LfTextFilterTest.php | 13 +++++++++++++ 7 files changed, 105 insertions(+) diff --git a/tests/Feature/LfCheckboxFilterTest.php b/tests/Feature/LfCheckboxFilterTest.php index f6120e1..640a3b6 100644 --- a/tests/Feature/LfCheckboxFilterTest.php +++ b/tests/Feature/LfCheckboxFilterTest.php @@ -270,6 +270,19 @@ public function it_clears_the_value_when_clear_option_is_fired() ->assertSet('selected', []); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfCheckboxFilter::class, ['field' => 'item_options', 'blueprint' => 'pages.pages', 'condition' => 'is']) + ->set('selected', ['option1', 'option2']) + ->dispatch('clear-all-filters') + ->assertSet('selected', []) + ->assertDispatched('clear-filter', + field: 'item_options', + condition: 'is' + ); + } + /** @test */ public function it_can_reorder_term_filter_values_by_slug() { diff --git a/tests/Feature/LfDateFilterTest.php b/tests/Feature/LfDateFilterTest.php index ebb4322..254fca7 100644 --- a/tests/Feature/LfDateFilterTest.php +++ b/tests/Feature/LfDateFilterTest.php @@ -120,6 +120,19 @@ public function it_clears_the_value_when_clear_option_is_fired() ->assertSet('selected', ''); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfDateFilter::class, ['field' => 'item_from', 'collection' => 'pages', 'blueprint' => 'pages.pages', 'condition' => 'is_after']) + ->set('selected', '2024-03-01') + ->dispatch('clear-all-filters') + ->assertSet('selected', '') + ->assertDispatched('clear-filter', + field: 'item_from', + condition: 'is_after' + ); + } + /** @test */ public function it_loads_a_param_that_is_preset() { diff --git a/tests/Feature/LfDualRangeFilterTest.php b/tests/Feature/LfDualRangeFilterTest.php index 99e3f98..070c804 100644 --- a/tests/Feature/LfDualRangeFilterTest.php +++ b/tests/Feature/LfDualRangeFilterTest.php @@ -267,6 +267,26 @@ public function it_clears_a_filter_using_the_clear_option_event() ); } + #[Test] + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfDualRangeFilter::class, [ + 'field' => 'cabins', + 'blueprint' => 'yachts.yachts', + 'condition' => 'dual_range', + 'min' => 2, + 'max' => 10, + 'minRange' => 2, + ]) + ->set('selectedMin', 5) + ->dispatch('clear-all-filters') + ->assertSet('selectedMin', 2) + ->assertDispatched('clear-filter', + field: 'cabins', + condition: 'dual_range' + ); + } + #[Test] public function collection_component_handles_different_conditions_by_modifier() { diff --git a/tests/Feature/LfRadioFilterTest.php b/tests/Feature/LfRadioFilterTest.php index 4d0ad71..11a2e68 100644 --- a/tests/Feature/LfRadioFilterTest.php +++ b/tests/Feature/LfRadioFilterTest.php @@ -183,6 +183,19 @@ public function it_clears_the_value_when_clear_option_is_fired() ->assertSet('selected', ''); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfRadioFilter::class, ['field' => 'item_options', 'blueprint' => 'pages.pages', 'condition' => 'is']) + ->set('selected', 'option1') + ->dispatch('clear-all-filters') + ->assertSet('selected', '') + ->assertDispatched('clear-filter', + field: 'item_options', + condition: 'is' + ); + } + protected function makeEntry($collection, $slug) { return EntryFactory::id($slug)->collection($collection)->slug($slug)->make(); diff --git a/tests/Feature/LfRangeFilterTest.php b/tests/Feature/LfRangeFilterTest.php index fefbde7..79c7c94 100644 --- a/tests/Feature/LfRangeFilterTest.php +++ b/tests/Feature/LfRangeFilterTest.php @@ -166,6 +166,26 @@ public function it_can_be_reset_using_the_clear_option_event() ); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfRangeFilter::class, [ + 'field' => 'max_items', + 'blueprint' => 'pages.pages', + 'condition' => 'gte', + 'min' => 1, + 'max' => 4, + 'default' => 2, + ]) + ->set('selected', 3) + ->dispatch('clear-all-filters') + ->assertSet('selected', 2) + ->assertDispatched('clear-filter', + field: 'max_items', + condition: 'gte' + ); + } + /** @test */ public function it_loads_a_param_that_is_preset() { diff --git a/tests/Feature/LfSelectFilterTest.php b/tests/Feature/LfSelectFilterTest.php index 2d35148..e17c18e 100644 --- a/tests/Feature/LfSelectFilterTest.php +++ b/tests/Feature/LfSelectFilterTest.php @@ -143,6 +143,19 @@ public function it_clears_the_value_when_clear_option_is_fired() ->assertSet('selected', ''); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfSelectFilter::class, ['field' => 'item_options', 'collection' => 'pages', 'blueprint' => 'pages.pages', 'condition' => 'is']) + ->set('selected', 'option1') + ->dispatch('clear-all-filters') + ->assertSet('selected', '') + ->assertDispatched('clear-filter', + field: 'item_options', + condition: 'is' + ); + } + protected function makeEntry($collection, $slug) { return EntryFactory::id($slug)->collection($collection)->slug($slug)->make(); diff --git a/tests/Feature/LfTextFilterTest.php b/tests/Feature/LfTextFilterTest.php index bb6fbb1..69cc1f5 100644 --- a/tests/Feature/LfTextFilterTest.php +++ b/tests/Feature/LfTextFilterTest.php @@ -127,6 +127,19 @@ public function it_clears_the_value_when_clear_option_is_fired() ->assertSet('selected', ''); } + /** @test */ + public function it_clears_the_value_when_clear_all_filters_event_is_fired() + { + Livewire::test(LfTextFilter::class, ['field' => 'item_options', 'collection' => 'pages', 'blueprint' => 'pages.pages', 'condition' => 'is']) + ->set('selected', 'option1') + ->dispatch('clear-all-filters') + ->assertSet('selected', '') + ->assertDispatched('clear-filter', + field: 'item_options', + condition: 'is' + ); + } + protected function makeEntry($collection, $slug) { return EntryFactory::id($slug)->collection($collection)->slug($slug)->make();