/ tests / Unit / Dossier / DossierCompleteEventTest.php
DossierCompleteEventTest.php
 1  <?php
 2  
 3  namespace Tests\Unit\Dossier;
 4  
 5  use App\Enums\RoleEnum;
 6  use App\Models\Dossier;
 7  use App\Models\User;
 8  use Tests\TestCase;
 9  
10  class DossierCompleteEventTest extends TestCase
11  {
12  
13      public function test_dossier_complete_sent_can_notify_all_dossier_users()
14      {
15          $dossier = Dossier::factory()->for(User::factory(), 'principalCertifier')->hasAttached(User::factory(), ['role_id' => RoleEnum::secondaryCertifier()->value], 'users')->hasAttached(User::factory(), ['role_id' => RoleEnum::informedStaff()->value], 'users')->create();
16          $event = new \App\Events\DossierComplete($dossier);
17          $listener = new \App\Listeners\DossierCompleteListener();
18          $listener->handle($event);
19          // dump($dossier->principalCertifier);
20          $this->assertDatabaseHas('notifications', [
21              'notifiable_id' => $dossier->secondaryCertifiers()->first()->id,
22              'notifiable_type' => User::class,
23              'type' => \App\Notifications\DossierComplete::class,
24          ]);
25          $this->assertDatabaseHas('notifications', [
26              'notifiable_id' => $dossier->informedPersonal()->first()->id,
27              'notifiable_type' => User::class,
28              'type' => \App\Notifications\DossierComplete::class,
29          ]);
30          $this->assertDatabaseHas('notifications', [
31              'notifiable_id' => $dossier->principalCertifier->id,
32              'notifiable_type' => User::class,
33              'type' => \App\Notifications\DossierComplete::class,
34          ]);
35      }
36  }