You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
namespace Tests\Feature;
use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase;
class ProfileTest extends TestCase { use RefreshDatabase;
public function test_profile_page_is_displayed(): void { $user = User::factory()->create();
$response = $this ->actingAs($user) ->get('/profile');
$response->assertOk(); }
public function test_profile_information_can_be_updated(): void { $user = User::factory()->create();
$response = $this ->actingAs($user) ->patch('/profile', [ 'name' => 'Test User', 'email' => 'test@example.com', ]);
$response ->assertSessionHasNoErrors() ->assertRedirect('/profile');
$user->refresh();
$this->assertSame('Test User', $user->name); $this->assertSame('test@example.com', $user->email); $this->assertNull($user->email_verified_at); }
public function test_email_verification_status_is_unchanged_when_the_email_address_is_unchanged(): void { $user = User::factory()->create();
$response = $this ->actingAs($user) ->patch('/profile', [ 'name' => 'Test User', 'email' => $user->email, ]);
$response ->assertSessionHasNoErrors() ->assertRedirect('/profile');
$this->assertNotNull($user->refresh()->email_verified_at); }
public function test_user_can_delete_their_account(): void { $user = User::factory()->create();
$response = $this ->actingAs($user) ->delete('/profile', [ 'password' => 'password', ]);
$response ->assertSessionHasNoErrors() ->assertRedirect('/');
$this->assertGuest(); $this->assertNull($user->fresh()); }
public function test_correct_password_must_be_provided_to_delete_account(): void { $user = User::factory()->create();
$response = $this ->actingAs($user) ->from('/profile') ->delete('/profile', [ 'password' => 'wrong-password', ]);
$response ->assertSessionHasErrors('password') ->assertRedirect('/profile');
$this->assertNotNull($user->fresh()); } }
|