auditionadmin/tests-old/Feature/Pages/Tabulation/enterScoreSelectTest.php

42 lines
1.2 KiB
PHP

<?php
use Illuminate\Foundation\Testing\RefreshDatabase;
use Sinnbeck\DomAssertions\Asserts\AssertElement;
use Sinnbeck\DomAssertions\Asserts\AssertForm;
use function Pest\Laravel\get;
uses(RefreshDatabase::class);
it('responds to only admin and tab users', function () {
get(route('scores.chooseEntry'))
->assertRedirect(route('home'));
actAsAdmin();
get(route('scores.chooseEntry'))
->assertOk();
actAsTab();
get(route('scores.chooseEntry'))
->assertOk();
actAsNormal();
get(route('scores.chooseEntry'))
->assertRedirect(route('dashboard'))
->assertSessionHas('error', 'You are not authorized to perform this action');
});
it('has an input for entry_id', function () {
actAsAdmin();
get(route('scores.chooseEntry'))
->assertOk()
->assertElementExists('#entry_id', function (AssertElement $element) {
$element->is('input');
});
});
it('submits to entry-flags.confirmNoShow', function () {
actAsAdmin();
get(route('scores.chooseEntry'))
->assertOk()
->assertFormExists('#entry-select-form', function (AssertForm $form) {
$form->hasMethod('GET')
->hasAction(route('scores.entryScoreSheet'));
});
});