auditionadmin/tests-old/Feature/Pages/Advancement/statusTest.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);
});