artisan('user:create', [ '--name' => 'admin.bowli', '--email' => 'ADMIN@EXAMPLE.COM', '--role' => UserRole::ADMIN->value, '--locale' => 'fr', '--verified' => true, ]) ->expectsQuestion('Password', 'Strong-password1') ->expectsQuestion('Confirm password', 'Strong-password1') ->assertSuccessful(); $user = User::query()->where('email', 'admin@example.com')->firstOrFail(); expect($user->name)->toBe('admin.bowli') ->and($user->role)->toBe(UserRole::ADMIN) ->and($user->locale)->toBe('fr') ->and($user->email_verified_at)->not->toBeNull() ->and($user->trial_ends_at)->not->toBeNull() ->and(Hash::check('Strong-password1', $user->password))->toBeTrue(); }); it('rejects duplicate users', function () { User::factory()->create([ 'name' => 'existing.user', 'email' => 'existing@example.com', ]); $this->artisan('user:create', [ '--name' => 'existing.user', '--email' => 'existing@example.com', '--role' => UserRole::USER->value, ])->assertFailed(); expect(User::query()->count())->toBe(1); });