mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-11-03 15:49:09 +00:00 
			
		
		
		
	
		
			
	
	
		
			72 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Tests\Feature\Auth;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Models\User;
							 | 
						||
| 
								 | 
							
								use Illuminate\Auth\Notifications\ResetPassword;
							 | 
						||
| 
								 | 
							
								use Illuminate\Foundation\Testing\RefreshDatabase;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\Notification;
							 | 
						||
| 
								 | 
							
								use Tests\TestCase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class PasswordResetTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    use RefreshDatabase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_reset_password_link_screen_can_be_rendered()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $response = $this->get('/forgot-password');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $response->assertStatus(200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_reset_password_link_can_be_requested()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        Notification::fake();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user = User::factory()->create();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->post('/forgot-password', ['email' => $user->email]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Notification::assertSentTo($user, ResetPassword::class);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_reset_password_screen_can_be_rendered()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        Notification::fake();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user = User::factory()->create();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->post('/forgot-password', ['email' => $user->email]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Notification::assertSentTo($user, ResetPassword::class, function ($notification) {
							 | 
						||
| 
								 | 
							
								            $response = $this->get('/reset-password/'.$notification->token);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $response->assertStatus(200);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_password_can_be_reset_with_valid_token()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        Notification::fake();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user = User::factory()->create();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->post('/forgot-password', ['email' => $user->email]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) {
							 | 
						||
| 
								 | 
							
								            $response = $this->post('/reset-password', [
							 | 
						||
| 
								 | 
							
								                'token' => $notification->token,
							 | 
						||
| 
								 | 
							
								                'email' => $user->email,
							 | 
						||
| 
								 | 
							
								                'password' => 'password',
							 | 
						||
| 
								 | 
							
								                'password_confirmation' => 'password',
							 | 
						||
| 
								 | 
							
								            ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $response->assertSessionHasNoErrors();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |