actingAs($user = User::factory()->create()); $this->get('/settings/profile')->assertOk(); } public function test_profile_information_can_be_updated(): void { $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(); $this->assertEquals('Test User', $user->name); $this->assertEquals('test@example.com', $user->email); $this->assertNull($user->email_verified_at); } public function test_email_verification_status_is_unchanged_when_email_address_is_unchanged(): void { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.profile') ->set('name', 'Test User') ->set('email', $user->email) ->call('updateProfileInformation'); $response->assertHasNoErrors(); $this->assertNotNull($user->refresh()->email_verified_at); } public function test_user_can_delete_their_account(): void { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.delete-user-form') ->set('password', 'password') ->call('deleteUser'); $response ->assertHasNoErrors() ->assertRedirect('/'); $this->assertNull($user->fresh()); $this->assertFalse(auth()->check()); } public function test_correct_password_must_be_provided_to_delete_account(): void { $user = User::factory()->create(); $this->actingAs($user); $response = Volt::test('settings.delete-user-form') ->set('password', 'wrong-password') ->call('deleteUser'); $response->assertHasErrors(['password']); $this->assertNotNull($user->fresh()); } }