42 lines
1.2 KiB
PHP
42 lines
1.2 KiB
PHP
<?php
|
|
|
|
use App\Models\Audition;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
use function Pest\Laravel\actingAs;
|
|
use function Pest\Laravel\get;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('does not answer a regular user or guest', function () {
|
|
get(route('advancement.status'))
|
|
->assertRedirect(route('home'));
|
|
actingAs(User::factory()->create());
|
|
get(route('advancement.status'))
|
|
->assertRedirect(route('dashboard'))
|
|
->assertSessionHas('error', 'You are not authorized to perform this action');
|
|
});
|
|
it('responds to an admin or tab user', function () {
|
|
actAsAdmin();
|
|
get(route('advancement.status'))
|
|
->assertOk();
|
|
actAsTab();
|
|
get(route('advancement.status'))
|
|
->assertOk();
|
|
});
|
|
it('includes advancement auditions', function () {
|
|
$audition = Audition::factory()->create();
|
|
actAsAdmin();
|
|
get(route('advancement.status'))
|
|
->assertOk()
|
|
->assertSee($audition->name);
|
|
});
|
|
it('does not include auditions not for advancement', function () {
|
|
$audition = Audition::factory()->seatingOnly()->create();
|
|
actAsAdmin();
|
|
get(route('advancement.status'))
|
|
->assertOk()
|
|
->assertDontSee($audition->name);
|
|
});
|