auditionadmin/tests/Feature/PagesResponseTest.php

60 lines
1.5 KiB
PHP

<?php
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use function Pest\Laravel\get;
uses(RefreshDatabase::class);
it('shows appropriate screens when not logged in', function () {
// Act & Assert
get(route('home'))
->assertStatus(200)
->assertSeeText([
'Login',
'Create Account',
]);
});
it('shows a registration page only if not logged in', function () {
// Act & Assert
get('/register')
->assertStatus(200)
->assertSeeText([
'Registration Code',
'Email address',
]);
$user = User::factory()->create();
$this->actingAs($user);
get('/register')
->assertStatus(302)
->assertRedirect(route('dashboard'));
});
it('shows a login page only if not logged in', function () {
get('/login')
->assertStatus(200)
->assertSeeText([
'Log In',
'Click here to register',
]);
$user = User::factory()->create();
$this->actingAs($user);
get('/register')
->assertStatus(302)
->assertRedirect(route('dashboard'));
});
it('shows dashboard only if logged in', function () {
get(route('dashboard'))
->assertStatus(302)
->assertRedirect(route('home'));
$user = User::factory()->create();
$this->actingAs($user);
get(route('dashboard'))
->assertStatus(200)
->assertSeeText('My School')
->assertSeeText('Dashboard');
});