handlerecordcreation testing ?

Hello Together,

i'm writing tests for the UserResource.

i want to test if when i create a user, a password forgotten email has been send.

i have in my CreateUser.php a handlerecordcreation wich executes this code :

protected function handleRecordCreation(array $data): Model {

if ($data['start_password_forgotten']) {
$email = ['email' => $data['email']];
unset($data['start_password_forgotten']);
$user = static::getModel()::create($data);
UserResource::sendPasswordForgottenEmail($email);
} else {
unset($data['start_password_forgotten']);
$user = static::getModel()::create($data);
}
return $user;
}

sendPasswordForgottenEmail sends the password via the broker with fortify.

in my Test im writing this code to check :

public function test_if_created_user_sends_password_forgotten_email() {


$this->actingAs(User::factory()->create()->assignRole(UserRoleEnum::ADMINISTRATOR->value));
$user = User::factory()->make();

Mail::fake();

Livewire::test(UserResource\Pages\CreateUser::class)
->fillForm([
'name' => $user->name,
'email' => $user->email,
'start_password_forgotten' => true,
])
->call('create');

Mail::assertSentCount(1);
}

but there is no email been send, even if i add the 'start_password_forgotten' attribute. so that means that the call() method not starts the handleRecordCreation().

is there a other possibility access it and test it ? am i missing something ?
Was this page helpful?