Browse Source

Implementa visão individual do associado

master
Guilherme Capanema 6 years ago
parent
commit
8dfb225cae
12 changed files with 488 additions and 31 deletions
  1. +17
    -1
      app/Associate.php
  2. +4
    -16
      app/AssociateCategory.php
  3. +27
    -0
      app/Http/Livewire/Collaborators/Associates/Show.php
  4. +5
    -0
      resources/lang/pt-BR.json
  5. +7
    -0
      resources/lang/pt-BR/associate_natures.php
  6. +8
    -0
      resources/lang/pt-BR/associate_types.php
  7. +2
    -0
      resources/lang/pt-BR/associates.php
  8. +9
    -3
      resources/views/components/input/select.blade.php
  9. +35
    -11
      resources/views/livewire/collaborators/associates/index.blade.php
  10. +327
    -0
      resources/views/livewire/collaborators/associates/show.blade.php
  11. +4
    -0
      routes/web.php
  12. +43
    -0
      tests/Feature/Collaborators/Associates/ShowTest.php

+ 17
- 1
app/Associate.php View File

@ -56,13 +56,29 @@ class Associate extends Authenticatable
// //
/** /**
* Get the associate's category
* Get the associate's category.
*/ */
public function category() public function category()
{ {
return $this->belongsTo(AssociateCategory::class, 'associate_category_id'); return $this->belongsTo(AssociateCategory::class, 'associate_category_id');
} }
/**
* Get the associate's nature.
*/
public function nature()
{
return $this->belongsTo(AssociateNature::class, 'associate_nature_id');
}
/**
* Get the associate's type.
*/
public function type()
{
return $this->belongsTo(AssociateType::class, 'associate_type_id');
}
// //
// //
// ===================================================================== // =====================================================================


+ 4
- 16
app/AssociateCategory.php View File

@ -10,21 +10,9 @@ class AssociateCategory extends Model
use Sushi; use Sushi;
protected $rows = [ protected $rows = [
[
'key' => 'individual',
'name' => 'Associado Indivíduo',
],
[
'key' => 'supporting-institution',
'name' => 'Associada Instituição Apoiadora',
],
[
'key' => 'acting-institution',
'name' => 'Associada Instituição Atuante',
],
[
'key' => 'company',
'name' => 'Associada Empresa Apoiadora',
],
['key' => 'individual'],
['key' => 'supporting-institution'],
['key' => 'acting-institution'],
['key' => 'company'],
]; ];
} }

+ 27
- 0
app/Http/Livewire/Collaborators/Associates/Show.php View File

@ -0,0 +1,27 @@
<?php
namespace App\Http\Livewire\Collaborators\Associates;
use App\Associate;
use Livewire\Component;
class Show extends Component
{
/** @var \App\Associate */
public $associate;
/**
* The mount hook of the component.
*
* @param \App\Associate $associate
*/
public function mount(Associate $associate)
{
$this->associate = $associate;
}
public function render()
{
return view('livewire.collaborators.associates.show');
}
}

+ 5
- 0
resources/lang/pt-BR.json View File

@ -0,0 +1,5 @@
{
"Search:": "Buscar:",
"Show": "Mostrar",
"entries": "registros"
}

+ 7
- 0
resources/lang/pt-BR/associate_natures.php View File

@ -0,0 +1,7 @@
<?php
return [
'individual' => 'Pessoa Física',
'informal' => 'Coletivo Informal',
'company' => 'Pessoa Jurídica',
];

+ 8
- 0
resources/lang/pt-BR/associate_types.php View File

@ -0,0 +1,8 @@
<?php
return [
'individual' => 'Indivíduo',
'collective' => 'Coletivo Informal',
'association' => 'Associação Formal',
'company' => 'Empresa Privada',
];

+ 2
- 0
resources/lang/pt-BR/associates.php View File

@ -4,6 +4,8 @@ return [
'model' => 'Associados', 'model' => 'Associados',
'attributes' => [ 'attributes' => [
'category' => 'Categoria', 'category' => 'Categoria',
'nature' => 'Natureza',
'type' => 'Tipo',
'name' => 'Nome completo', 'name' => 'Nome completo',
'birthday' => 'Data de nascimento', 'birthday' => 'Data de nascimento',
'document' => [ 'document' => [


+ 9
- 3
resources/views/components/input/select.blade.php View File

@ -2,11 +2,17 @@
'state' => null, 'state' => null,
]) ])
@php
$class = 'block w-full px-3 py-2 border border-gray-300 rounded-md placeholder-gray-400 focus:outline-none focus:shadow-outline-blue focus:border-blue-300 transition duration-150 ease-in-out sm:text-sm sm:leading-5';
if ($state === false) {
$class .= ' border-red-300 text-red-900 placeholder-red-300 focus:border-red-300 focus:shadow-outline-red';
}
@endphp
<div class="mt-1 rounded-md shadow-sm"> <div class="mt-1 rounded-md shadow-sm">
<select <select
{{ $attributes }}
class="block w-full px-3 py-2 border border-gray-300 rounded-md placeholder-gray-400 focus:outline-none focus:shadow-outline-blue focus:border-blue-300 transition duration-150 ease-in-out sm:text-sm sm:leading-5
@if ($state === false) border-red-300 text-red-900 placeholder-red-300 focus:border-red-300 focus:shadow-outline-red @endif"
{{ $attributes->merge(compact('class')) }}
> >
{{ $slot }} {{ $slot }}
</select> </select>


+ 35
- 11
resources/views/livewire/collaborators/associates/index.blade.php View File

@ -4,16 +4,40 @@
{{ __('associates.model') }} {{ __('associates.model') }}
</h1> </h1>
<div class="flex items-center justify-between px-4 py-3 sm:px-6">
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
<x-input.select wire:model="perPage">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</x-input.select>
<label class="flex items-center">
<x-input.text wire:model.debounce.300ms="search" />
<span class="text-gray-700">
{{ __('Show') }}
</span>
<div class="mx-2 -mt-1">
<x-input.select wire:model="perPage">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</x-input.select>
</div>
<span class="text-gray-700">
{{ __('entries') }}
</span>
</label>
<label class="flex items-center">
<span class="text-gray-700">
{{ __('Search:') }}
</span>
<div class="ml-2 -mt-1">
<x-input.text wire:model.debounce.300ms="search" />
</div>
</label>
</div> </div>
@ -42,10 +66,10 @@
<tbody class="bg-white"> <tbody class="bg-white">
@foreach ($associates as $associate) @foreach ($associates as $associate)
<tr>
<tr class="hover:bg-gray-100">
<td class="px-6 py-4 whitespace-no-wrap border-b border-gray-200"> <td class="px-6 py-4 whitespace-no-wrap border-b border-gray-200">
<div class="flex items-center">
<a href="{{ route('collaborators.associates.show', compact('associate')) }}" class="flex items-center">
<div class="flex-shrink-0 h-10 w-10"> <div class="flex-shrink-0 h-10 w-10">
<img class="h-10 w-10 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" /> <img class="h-10 w-10 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
@ -59,7 +83,7 @@
{{ $associate->email }} {{ $associate->email }}
</div> </div>
</div> </div>
</div>
</a>
</td> </td>
<td class="px-6 py-4 whitespace-no-wrap border-b border-gray-200"> <td class="px-6 py-4 whitespace-no-wrap border-b border-gray-200">


+ 327
- 0
resources/views/livewire/collaborators/associates/show.blade.php View File

@ -0,0 +1,327 @@
<div>
<div class="bg-white shadow overflow-hidden sm:rounded-lg">
<div class="flex items-center px-4 py-5 border-b border-gray-200 sm:px-6">
<div class="flex-shrink-0 h-16 w-16">
<img class="h-16 w-16 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
</div>
<div class="ml-4">
<h2 class="text-lg leading-6 font-medium text-gray-900">
{{ $associate->name }}
</h2>
<p class="mt-1 max-w-2xl text-sm leading-5 text-gray-500">
{{ $associate->email }}
</p>
</div>
</div>
<div>
<dl>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
ID
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->id }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.category') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ __('associate_categories.' . $associate->category->key) }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.nature') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ __('associate_natures.' . $associate->nature->key) }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.type') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ __('associate_types.' . $associate->type->key) }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.nature') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->birthday->format('d/m/Y') }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.name') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->name }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.birthday') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->birthday->format('d/m/Y') }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.gender') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['gender'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.document.type') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->document['type'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.document.number') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->document['number'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.scholarity') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['scholarity'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.country') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['country'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.postcode') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['postcode'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.street') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['street'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.number') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['number'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.complement') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['complement'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.neighbourhood') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['neighbourhood'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.city') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['city'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.address.state') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->address['state'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.phone') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['phone'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.email') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->email }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.secondary_emails') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['secondary_emails'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.website') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['website'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.social') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['social'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.discussion') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->discussion }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.expectation') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['expectation'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.bike_use') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['bike_use'] }}
</dd>
</div>
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.org_participation') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['org_participation'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.profile.bike_activities') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
{{ $associate->profile['bike_activities'] }}
</dd>
</div>
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm leading-5 font-medium text-gray-500">
{{ __('associates.attributes.contribution') }}
</dt>
<dd class="mt-1 text-sm leading-5 text-gray-900 sm:mt-0 sm:col-span-2">
<ul class="border border-gray-200 rounded-md">
<li class="pl-3 pr-4 py-3 flex items-center justify-between text-sm leading-5">
<div class="w-0 flex-1 flex items-center">
<svg class="flex-shrink-0 h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M8 4a3 3 0 00-3 3v4a5 5 0 0010 0V7a1 1 0 112 0v4a7 7 0 11-14 0V7a5 5 0 0110 0v4a3 3 0 11-6 0V7a1 1 0 012 0v4a1 1 0 102 0V7a3 3 0 00-3-3z" clip-rule="evenodd"/>
</svg>
<span class="ml-2 flex-1 w-0 truncate">
resume_back_end_developer.pdf
</span>
</div>
<div class="ml-4 flex-shrink-0">
<a href="#" class="font-medium text-indigo-600 hover:text-indigo-500 transition duration-150 ease-in-out">
Download
</a>
</div>
</li>
<li class="border-t border-gray-200 pl-3 pr-4 py-3 flex items-center justify-between text-sm leading-5">
<div class="w-0 flex-1 flex items-center">
<svg class="flex-shrink-0 h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M8 4a3 3 0 00-3 3v4a5 5 0 0010 0V7a1 1 0 112 0v4a7 7 0 11-14 0V7a5 5 0 0110 0v4a3 3 0 11-6 0V7a1 1 0 012 0v4a1 1 0 102 0V7a3 3 0 00-3-3z" clip-rule="evenodd"/>
</svg>
<span class="ml-2 flex-1 w-0 truncate">
coverletter_back_end_developer.pdf
</span>
</div>
<div class="ml-4 flex-shrink-0">
<a href="#" class="font-medium text-indigo-600 hover:text-indigo-500 transition duration-150 ease-in-out">
Download
</a>
</div>
</li>
</ul>
</dd>
</div>
</dl>
</div>
</div>
</div>

+ 4
- 0
routes/web.php View File

@ -43,6 +43,10 @@ Route::prefix('admin')->name('collaborators.')->group(function () {
Route::livewire('associates', 'collaborators.associates.index') Route::livewire('associates', 'collaborators.associates.index')
->layout('layouts.collaborators') ->layout('layouts.collaborators')
->name('associates.index'); ->name('associates.index');
Route::livewire('associates/{associate}', 'collaborators.associates.show')
->layout('layouts.collaborators')
->name('associates.show');
}); });
}); });


+ 43
- 0
tests/Feature/Collaborators/Associates/ShowTest.php View File

@ -0,0 +1,43 @@
<?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 ShowTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function a_collaborator_can_view_show_page()
{
$collaborator = factory(Collaborator::class)->create();
$this->be($collaborator, 'collaborators');
$associate = factory(Associate::class)->create();
$this->get(route('collaborators.associates.show', compact('associate')))
->assertSuccessful()
->assertSeeLivewire('collaborators.associates.show');
}
/** @test */
public function show_page_displays_correct_associate_data()
{
$collaborator = factory(Collaborator::class)->create();
$this->be($collaborator, 'collaborators');
$associate = factory(Associate::class)->create(['name' => 'José da Silva']);
factory(Associate::class)->create(['name' => 'Maria da Conceição']);
$this->get(route('collaborators.associates.show', compact('associate')))
->assertSee('José da Silva')
->assertDontSee('Maria da Conceição');
}
}