create(); $response = $this ->actingAs($user) ->get(route('profile.edit')); $response->assertOk(); }); test('profile information can be updated', function () { $user = User::factory()->create(); $response = $this ->actingAs($user) ->patch(route('profile.update'), [ 'name' => 'Test User', 'email' => 'test@example.com', ]); $response ->assertSessionHasNoErrors() ->assertRedirect(route('profile.edit')); $user->refresh(); expect($user->name)->toBe('Test User'); expect($user->email)->toBe('test@example.com'); expect($user->email_verified_at)->toBeNull(); }); test('email verification status is unchanged when the email address is unchanged', function () { $user = User::factory()->create(); $response = $this ->actingAs($user) ->patch(route('profile.update'), [ 'name' => 'Test User', 'email' => $user->email, ]); $response ->assertSessionHasNoErrors() ->assertRedirect(route('profile.edit')); expect($user->refresh()->email_verified_at)->not->toBeNull(); }); test('user can delete their account', function () { $user = User::factory()->create(); $response = $this ->actingAs($user) ->delete(route('profile.destroy'), [ 'password' => 'password', ]); $response ->assertSessionHasNoErrors() ->assertRedirect(route('home')); $this->assertGuest(); expect($user->fresh())->toBeNull(); }); test('correct password must be provided to delete account', function () { $user = User::factory()->create(); $response = $this ->actingAs($user) ->from(route('profile.edit')) ->delete(route('profile.destroy'), [ 'password' => 'wrong-password', ]); $response ->assertSessionHasErrors('password') ->assertRedirect(route('profile.edit')); expect($user->fresh())->not->toBeNull(); });