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 }