actingAs(User::factory()->create()); // Das Profil ist seit dem Hub-/Customer-Portal-Umbau unter // /admin/me/profile (route `me.profile`) erreichbar. /settings/profile // bleibt als kanonischer Redirect bestehen. Das Rendern der Zielseite // deckt CustomerProfileSecurityTest über die Volt-Komponente ab. $this->get('/settings/profile')->assertRedirect('/admin/me/profile'); }); test('profile information can be updated', function () { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.profile') ->set('name', 'Test User') ->set('email', 'test@example.com') ->call('updateProfileInformation'); $response->assertHasNoErrors(); $user->refresh(); expect($user->name)->toEqual('Test User'); expect($user->email)->toEqual('test@example.com'); expect($user->email_verified_at)->toBeNull(); }); test('email verification status is unchanged when email address is unchanged', function () { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.profile') ->set('name', 'Test User') ->set('email', $user->email) ->call('updateProfileInformation'); $response->assertHasNoErrors(); expect($user->refresh()->email_verified_at)->not->toBeNull(); }); test('user can delete their account', function () { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.delete-user-form') ->set('password', 'password') ->call('deleteUser'); $response ->assertHasNoErrors() ->assertRedirect('/'); expect($user->fresh())->toBeNull(); expect(auth()->check())->toBeFalse(); }); test('correct password must be provided to delete account', function () { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.delete-user-form') ->set('password', 'wrong-password') ->call('deleteUser'); $response->assertHasErrors(['password']); expect($user->fresh())->not->toBeNull(); });