auditionadmin/tests-old/Feature/Pages/Setup/ScoringGuideOrderTabsTest.php

55 lines
1.9 KiB
PHP

<?php
use App\Models\ScoringGuide;
use App\Models\SubscoreDefinition;
use Illuminate\Foundation\Testing\RefreshDatabase;
use function Pest\Laravel\get;
uses(RefreshDatabase::class);
beforeEach(function () {
$this->scoringGuide = ScoringGuide::factory()->create();
$this->subscores = SubscoreDefinition::factory()->count(6)->create([
'scoring_guide_id' => $this->scoringGuide->id,
]);
});
it('shows subscores in display or tiebreak order', function () {
$scoringGuide = ScoringGuide::factory()->create();
$fourthSubscore = SubscoreDefinition::factory()->create([
'scoring_guide_id' => $scoringGuide->id,
'display_order' => 4,
'tiebreak_order' => 3,
]);
$firstSubscore = SubscoreDefinition::factory()->create([
'scoring_guide_id' => $scoringGuide->id,
'display_order' => 1,
'tiebreak_order' => 4,
]);
$thirdSubscore = SubscoreDefinition::factory()->create([
'scoring_guide_id' => $scoringGuide->id,
'display_order' => 3,
'tiebreak_order' => 2,
]);
$secondSubscore = SubscoreDefinition::factory()->create([
'scoring_guide_id' => $scoringGuide->id,
'display_order' => 2,
'tiebreak_order' => 1,
]);
actAsAdmin();
$response = get(route('admin.scoring.edit', ['guide' => $scoringGuide, 'tab' => 'displayOrder']));
$response->assertOk()->assertSee('Subscore Display Order')->assertSeeInOrder([
$firstSubscore->name,
$secondSubscore->name,
$thirdSubscore->name,
$fourthSubscore->name,
]);
$response = get(route('admin.scoring.edit', ['guide' => $scoringGuide, 'tab' => 'tiebreakOrder']));
$response->assertOk()->assertSee('Subscore Display Order')->assertSeeInOrder([
$secondSubscore->name,
$thirdSubscore->name,
$fourthSubscore->name,
$firstSubscore->name,
]);
});