From 5d6ee424527f28a41e7d109f04831c2b35f72fb6 Mon Sep 17 00:00:00 2001 From: Guilherme Capanema Date: Wed, 10 Jun 2020 09:37:11 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20ordena=C3=A7=C3=A3o=20ao=20=C3=ADndi?= =?UTF-8?q?ce=20de=20associados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collaborators/Associates/Index.php | 13 ++++++ database/seeds/AssociateSeeder.php | 2 +- .../collaborators/associates/index.blade.php | 2 +- .../Collaborators/Associates/IndexTest.php | 41 ++++++++++++++++--- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/app/Http/Livewire/Collaborators/Associates/Index.php b/app/Http/Livewire/Collaborators/Associates/Index.php index 8c7f1aa..aae4642 100644 --- a/app/Http/Livewire/Collaborators/Associates/Index.php +++ b/app/Http/Livewire/Collaborators/Associates/Index.php @@ -51,6 +51,19 @@ class Index extends Component $this->resetPage(); } + public function orderBy($orderColumn) + { + if ($this->orderColumn === $orderColumn) { + $this->orderDirection = $this->orderDirection === 'ASC' ? 'DESC' : 'ASC'; + } else { + $this->orderDirection = 'ASC'; + } + + $this->orderColumn = $orderColumn; + + $this->resetPage(); + } + public function render() { $associates = Associate::with('category') diff --git a/database/seeds/AssociateSeeder.php b/database/seeds/AssociateSeeder.php index 5f54c30..83cd5c9 100644 --- a/database/seeds/AssociateSeeder.php +++ b/database/seeds/AssociateSeeder.php @@ -13,6 +13,6 @@ class AssociateSeeder extends Seeder public function run() { Associate::flushEventListeners(); - factory(Associate::class, 10000)->create(); + factory(Associate::class, 130)->create(); } } diff --git a/resources/views/livewire/collaborators/associates/index.blade.php b/resources/views/livewire/collaborators/associates/index.blade.php index 78511d2..b2c64c2 100644 --- a/resources/views/livewire/collaborators/associates/index.blade.php +++ b/resources/views/livewire/collaborators/associates/index.blade.php @@ -70,7 +70,7 @@ - + {{ __('associates.attributes.name') }} diff --git a/tests/Feature/Collaborators/Associates/IndexTest.php b/tests/Feature/Collaborators/Associates/IndexTest.php index 2f2cb71..97f3906 100644 --- a/tests/Feature/Collaborators/Associates/IndexTest.php +++ b/tests/Feature/Collaborators/Associates/IndexTest.php @@ -30,15 +30,22 @@ class IndexTest extends TestCase $collaborator = factory(Collaborator::class)->create(); $this->be($collaborator, 'collaborators'); - factory(Associate::class)->create(['name' => 'José da Silva']); - factory(Associate::class)->create(['name' => 'Maria da Conceição']); + factory(Associate::class)->create([ + 'name' => 'José da Silva', + 'created_at' => now(), + ]); + factory(Associate::class)->create([ + 'name' => 'Maria da Conceição', + 'created_at' => now()->addMinute(), + ]); Livewire::test('collaborators.associates.index') - ->assertSee('José da Silva') + ->set('perPage', 2) ->assertSee('Maria da Conceição') - ->set('perPage', 1) ->assertSee('José da Silva') - ->assertDontSee('Maria da Conceição'); + ->set('perPage', 1) + ->assertSee('Maria da Conceição') + ->assertDontSee('José da Silva'); } /** @test */ @@ -107,4 +114,28 @@ class IndexTest extends TestCase ->assertDontSee('José da Silva') ->assertSee('Maria da Conceição'); } + + /** @test */ + public function index_is_sortable_by_name() + { + $collaborator = factory(Collaborator::class)->create(); + $this->be($collaborator, 'collaborators'); + + factory(Associate::class)->create([ + 'name' => 'José da Silva', + 'created_at' => now(), + ]); + factory(Associate::class)->create([ + 'name' => 'Maria da Conceição', + 'created_at' => now()->addMinute(), + ]); + + Livewire::test('collaborators.associates.index') + ->set('perPage', 1) + ->assertSee('Maria da Conceição') + ->assertDontSee('José da Silva') + ->call('orderBy', 'name') + ->assertSee('José da Silva') + ->assertDontSee('Maria da Conceição'); + } }