<?php
|
|
|
|
namespace Tests\Feature\Collaborators\Associates;
|
|
|
|
use App\Associate;
|
|
use App\Collaborator;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Foundation\Testing\WithFaker;
|
|
use Livewire\Livewire;
|
|
use Tests\TestCase;
|
|
|
|
class IndexTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
/** @test */
|
|
public function a_collaborator_can_view_index_page()
|
|
{
|
|
$collaborator = factory(Collaborator::class)->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']);
|
|
factory(Associate::class)->create(['name' => 'Maria da Conceição']);
|
|
|
|
Livewire::test('collaborators.associates.index')
|
|
->assertSee('José da Silva')
|
|
->assertSee('Maria da Conceição')
|
|
->set('perPage', 1)
|
|
->assertSee('José da Silva')
|
|
->assertDontSee('Maria da Conceição');
|
|
}
|
|
|
|
/** @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');
|
|
}
|
|
}
|