| 
									
										
										
										
											2022-03-06 02:29:58 +11:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Tests\Feature\Auth; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use App\Models\User; | 
					
						
							|  |  |  | use App\Providers\RouteServiceProvider; | 
					
						
							|  |  |  | use Illuminate\Foundation\Testing\RefreshDatabase; | 
					
						
							|  |  |  | use Tests\TestCase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AuthenticationTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     use RefreshDatabase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_login_screen_can_be_rendered() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2023-09-24 21:35:34 +10:00
										 |  |  |         $user = User::factory()->create(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-06 02:29:58 +11:00
										 |  |  |         $response = $this->get('/login'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $response->assertStatus(200); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_users_can_authenticate_using_the_login_screen() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $user = User::factory()->create(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $response = $this->post('/login', [ | 
					
						
							|  |  |  |             'email' => $user->email, | 
					
						
							|  |  |  |             'password' => 'password', | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertAuthenticated(); | 
					
						
							|  |  |  |         $response->assertRedirect(RouteServiceProvider::HOME); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_users_can_not_authenticate_with_invalid_password() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $user = User::factory()->create(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->post('/login', [ | 
					
						
							|  |  |  |             'email' => $user->email, | 
					
						
							|  |  |  |             'password' => 'wrong-password', | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertGuest(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |