Create tests for app/actions/fortify/CreateNewUser

This commit is contained in:
Matt Young 2025-07-01 21:13:25 -05:00
parent d994e906e1
commit a5928350a7
2 changed files with 43 additions and 1 deletions

View File

@ -61,7 +61,7 @@ class CreateNewUser implements CreatesNewUsers
'user' => $input['email'],
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['users' => $user->id],
'affected' => ['users' => [$user->id]],
]);
return $user;

View File

@ -0,0 +1,42 @@
<?php
use App\Actions\Fortify\CreateNewUser;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Validation\ValidationException;
uses(RefreshDatabase::class);
beforeEach(function () {
$this->createArray = [
'registration_code' => auditionSetting('registrationCode'),
'first_name' => fake()->firstName(),
'last_name' => fake()->lastName(),
'judging_preference' => 'Sarrousaphone',
'cell_phone' => fake()->phoneNumber(),
'email' => fake()->safeEmail(),
'password' => '<PASSWORD>',
'password_confirmation' => '<PASSWORD>',
];
});
it('creates a new user', function () {
$creator = app(CreateNewUser::class);
$newUser = $creator->create($this->createArray);
expect(User::where('email', $this->createArray['email'])->exists())->toBeTrue();
});
it('fails when an invalid registration code is used', function () {
$creator = app(CreateNewUser::class);
$this->createArray['registration_code'] = 'invalid';
$newUser = $creator->create($this->createArray);
})->throws(ValidationException::class, 'Incorrect registration code provided');
it('logs user creation', function () {
$creator = app(CreateNewUser::class);
$newUser = $creator->create($this->createArray);
$logEntry = \App\Models\AuditLogEntry::first();
expect($logEntry->message)->toStartWith('New User Registered')
->and($logEntry->affected['users'])->toEqual([$newUser->id]);
});