12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- use App\Models\User;
- test('profile page is displayed', function () {
- $user = User::factory()->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();
- });
|