90 lines
2.2 KiB
PHP
90 lines
2.2 KiB
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
|
|
test('account info page is displayed', function () {
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($user)
|
|
->get('/account/info');
|
|
|
|
$response->assertOk();
|
|
});
|
|
|
|
test('account information can be updated', function () {
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($user)
|
|
->patch('/account/info', [
|
|
'firstname' => 'Test',
|
|
'lastname' => 'User',
|
|
'email' => 'test@example.com',
|
|
]);
|
|
|
|
$response
|
|
->assertSessionHasNoErrors()
|
|
->assertRedirect('/account/info');
|
|
|
|
$user->refresh();
|
|
|
|
$this->assertSame('Test', $user->firstname);
|
|
$this->assertSame('User', $user->lastname);
|
|
$this->assertSame('Test User', $user->name);
|
|
$this->assertSame('test@example.com', $user->email);
|
|
$this->assertNull($user->email_verified_at);
|
|
});
|
|
|
|
test('email verification status is unchanged when the email address is unchanged', function () {
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($user)
|
|
->patch('/account/info', [
|
|
'firstname' => 'Test',
|
|
'lastname' => 'User',
|
|
'email' => $user->email,
|
|
]);
|
|
|
|
$response
|
|
->assertSessionHasNoErrors()
|
|
->assertRedirect('/account/info');
|
|
|
|
$this->assertNotNull($user->refresh()->email_verified_at);
|
|
});
|
|
|
|
test('user can delete their account', function () {
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($user)
|
|
->delete('/account', [
|
|
'password' => 'password',
|
|
]);
|
|
|
|
$response
|
|
->assertSessionHasNoErrors()
|
|
->assertRedirect('/dashboard');
|
|
|
|
$this->assertGuest();
|
|
$this->assertNull($user->fresh());
|
|
});
|
|
|
|
test('correct password must be provided to delete account', function () {
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($user)
|
|
->from('/account/delete/confirm')
|
|
->delete('/account', [
|
|
'password' => 'wrong-password',
|
|
]);
|
|
|
|
$response
|
|
->assertSessionHasErrorsIn('userDeletion', 'password')
|
|
->assertRedirect('/account/delete/confirm');
|
|
|
|
$this->assertNotNull($user->fresh());
|
|
});
|