get(route('filament.app.auth.register')); $response->assertStatus(200); }); test('prevents access to registration when already logged in', function () { actingAs(User::factory()->create()) ->get(route('filament.app.auth.register')) ->assertRedirect(route('filament.app.pages.dashboard')); }); test('shows validation errors for invalid data', function () { Livewire(Register::class) ->fillForm([ 'name' => '', 'company_name' => 'Company Name', 'email' => 'invalid-email', 'password' => 'short', 'password_confirmation' => 'different', ]) ->call('register') ->assertHasFormErrors(['name', 'email', 'password']); }); test('prevents registration with existing email', function () { User::factory()->create([ 'email' => 'existing@mailinator.com', ]); Livewire(Register::class) ->fillForm([ 'email' => 'existing@mailinator.com', ]) ->call('register') ->assertHasFormErrors(['email' => 'unique']); }); test('sends the filament email verification notification after registering', function () { Notification::fake(); $response = Livewire(Register::class) ->fillForm([ 'name' => 'App User', 'company_name' => 'Company Name', 'email' => 'appuser@yopmail.com', 'password' => 'password', 'passwordConfirmation' => 'password', ]) ->call('register') ->assertHasNoFormErrors(); $user = User::where('email', 'appuser@yopmail.com')->firstOrFail(); Notification::assertSentTo([$user], VerifyEmail::class); });