create(); $this->be($collaborator, 'collaborators'); $this->get(route('collaborators.associates.index')) ->assertSuccessful() ->assertSeeLivewire('collaborators.associates.index'); } /** @test */ public function index_paginates_results() { $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', 2) ->assertSee('Maria da Conceição') ->assertSee('José da Silva') ->set('perPage', 1) ->assertSee('Maria da Conceição') ->assertDontSee('José da Silva'); } /** @test */ public function index_is_searchable() { $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']); Livewire::test('collaborators.associates.index') ->assertSee('José da Silva') ->assertSee('Maria da Conceição') ->set('search', 'Maria da Conceição') ->assertDontSee('José da Silva') ->assertSee('Maria da Conceição'); } /** @test */ public function index_is_filterable_by_associate_category_id() { $collaborator = factory(Collaborator::class)->create(); $this->be($collaborator, 'collaborators'); factory(Associate::class)->create([ 'name' => 'José da Silva', 'associate_category_id' => 1, ]); factory(Associate::class)->create([ 'name' => 'Maria da Conceição', 'associate_category_id' => 2, ]); Livewire::test('collaborators.associates.index') ->assertSee('José da Silva') ->assertSee('Maria da Conceição') ->set('associate_category_id', 2) ->assertDontSee('José da Silva') ->assertSee('Maria da Conceição'); } /** @test */ public function index_is_filterable_by_gender() { $collaborator = factory(Collaborator::class)->create(); $this->be($collaborator, 'collaborators'); factory(Associate::class)->create([ 'name' => 'José da Silva', 'profile' => [ 'gender' => 'male', ], ]); factory(Associate::class)->create([ 'name' => 'Maria da Conceição', 'profile' => [ 'gender' => 'female', ], ]); Livewire::test('collaborators.associates.index') ->assertSee('José da Silva') ->assertSee('Maria da Conceição') ->set('gender', 'female') ->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'); } }