annotate stubs/default/pest-tests/Feature/Auth/PasswordResetTest.php @ 0:90e38de8f2ba

Initial Commit
author luka
date Wed, 13 Aug 2025 22:17:20 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
1 <?php
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
2
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
3 use App\Models\User;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
4 use Illuminate\Auth\Notifications\ResetPassword;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
5 use Illuminate\Support\Facades\Notification;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
6
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
7 test('reset password link screen can be rendered', function () {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
8 $response = $this->get('/forgot-password');
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
9
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
10 $response->assertStatus(200);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
11 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
12
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
13 test('reset password link can be requested', function () {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
14 Notification::fake();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
15
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
16 $user = User::factory()->create();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
17
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
18 $this->post('/forgot-password', ['email' => $user->email]);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
19
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
20 Notification::assertSentTo($user, ResetPassword::class);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
21 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
22
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
23 test('reset password screen can be rendered', function () {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
24 Notification::fake();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
25
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
26 $user = User::factory()->create();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
27
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
28 $this->post('/forgot-password', ['email' => $user->email]);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
29
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
30 Notification::assertSentTo($user, ResetPassword::class, function ($notification) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
31 $response = $this->get('/reset-password/'.$notification->token);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
32
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
33 $response->assertStatus(200);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
34
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
35 return true;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
36 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
37 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
38
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
39 test('password can be reset with valid token', function () {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
40 Notification::fake();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
41
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
42 $user = User::factory()->create();
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
43
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
44 $this->post('/forgot-password', ['email' => $user->email]);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
45
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
46 Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) {
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
47 $response = $this->post('/reset-password', [
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
48 'token' => $notification->token,
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
49 'email' => $user->email,
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
50 'password' => 'password',
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
51 'password_confirmation' => 'password',
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
52 ]);
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
53
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
54 $response
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
55 ->assertSessionHasNoErrors()
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
56 ->assertRedirect(route('login'));
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
57
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
58 return true;
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
59 });
90e38de8f2ba Initial Commit
luka
parents:
diff changeset
60 });