1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace Tests\Feature\Auth;
- use App\Models\User;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Livewire\Volt\Volt;
- use Tests\TestCase;
- class AuthenticationTest extends TestCase
- {
- use RefreshDatabase;
- public function test_login_screen_can_be_rendered(): void
- {
- $response = $this->get('/login');
- $response
- ->assertOk()
- ->assertSeeVolt('pages.auth.login');
- }
- public function test_users_can_authenticate_using_the_login_screen(): void
- {
- $user = User::factory()->create();
- $component = Volt::test('pages.auth.login')
- ->set('form.email', $user->email)
- ->set('form.password', 'password');
- $component->call('login');
- $component
- ->assertHasNoErrors()
- ->assertRedirect(route('dashboard', absolute: false));
- $this->assertAuthenticated();
- }
- public function test_users_can_not_authenticate_with_invalid_password(): void
- {
- $user = User::factory()->create();
- $component = Volt::test('pages.auth.login')
- ->set('form.email', $user->email)
- ->set('form.password', 'wrong-password');
- $component->call('login');
- $component
- ->assertHasErrors()
- ->assertNoRedirect();
- $this->assertGuest();
- }
- public function test_navigation_menu_can_be_rendered(): void
- {
- $user = User::factory()->create();
- $this->actingAs($user);
- $response = $this->get('/dashboard');
- $response
- ->assertOk()
- ->assertSeeVolt('layout.navigation');
- }
- public function test_users_can_logout(): void
- {
- $user = User::factory()->create();
- $this->actingAs($user);
- $component = Volt::test('layout.navigation');
- $component->call('logout');
- $component
- ->assertHasNoErrors()
- ->assertRedirect('/');
- $this->assertGuest();
- }
- }
|