This commit is contained in:
Matt Young 2024-07-08 16:34:12 -05:00
parent 53529fe0e9
commit d58b95e995
14 changed files with 24 additions and 17 deletions

View File

@ -9,7 +9,7 @@ use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
use function compact; use function compact;
use function redirect; use function redirect;

View File

@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Models\Entry; use App\Models\Entry;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class ScoreController extends Controller class ScoreController extends Controller
{ {
@ -48,6 +48,7 @@ class ScoreController extends Controller
if (! $entry) { if (! $entry) {
return redirect()->route('tabulation.chooseEntry')->with('error', 'Entry not found'); return redirect()->route('tabulation.chooseEntry')->with('error', 'Entry not found');
} }
session()->flash('error', 'This entry is marked as a no-show. Entering a score will remove the no-show flag');
return view('tabulation.entry_score_sheet', return view('tabulation.entry_score_sheet',
compact('entry', 'judges', 'scoring_guide', 'subscores', 'existing_sheets')); compact('entry', 'judges', 'scoring_guide', 'subscores', 'existing_sheets'));
@ -60,6 +61,8 @@ class ScoreController extends Controller
return $publishedCheck; return $publishedCheck;
} }
$entry->removeFlag('no_show');
$judges = $entry->audition->room->judges; $judges = $entry->audition->room->judges;
$subscores = $entry->audition->scoringGuide->subscores->sortBy('tiebreak_order'); $subscores = $entry->audition->scoringGuide->subscores->sortBy('tiebreak_order');

View File

@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\HasOneThrough; use Illuminate\Database\Eloquent\Relations\HasOneThrough;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class Entry extends Model class Entry extends Model
{ {

View File

@ -1,10 +1,7 @@
<?php <?php
namespace Tests\Feature\Models; namespace App\Models;
use App\Models\Audition;
use App\Models\Entry;
use App\Models\User;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOneThrough; use Illuminate\Database\Eloquent\Relations\HasOneThrough;

View File

@ -11,7 +11,7 @@ use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class User extends Authenticatable implements MustVerifyEmail class User extends Authenticatable implements MustVerifyEmail
{ {

View File

@ -3,7 +3,7 @@
namespace App\Observers; namespace App\Observers;
use App\Events\ScoreSheetChange; use App\Events\ScoreSheetChange;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class ScoreSheetObserver class ScoreSheetObserver
{ {

View File

@ -4,7 +4,7 @@ namespace App\Policies;
use App\Models\Entry; use App\Models\Entry;
use App\Models\User; use App\Models\User;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class ScoreSheetPolicy class ScoreSheetPolicy
{ {

View File

@ -42,7 +42,7 @@ use App\Services\SeatingService;
use App\Services\TabulationService; use App\Services\TabulationService;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider

View File

@ -7,7 +7,7 @@ use App\Models\ScoringGuide;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
use function array_unshift; use function array_unshift;
class ScoreService class ScoreService

View File

@ -4,7 +4,7 @@ namespace Database\Seeders;
use App\Models\User; use App\Models\User;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Tests\Feature\Models\ScoreSheet; use App\Models\ScoreSheet;
class ScoreAllAuditions extends Seeder class ScoreAllAuditions extends Seeder
{ {

View File

@ -7,11 +7,11 @@ use App\Models\Entry;
use App\Models\EntryFlag; use App\Models\EntryFlag;
use App\Models\JudgeAdvancementVote; use App\Models\JudgeAdvancementVote;
use App\Models\School; use App\Models\School;
use App\Models\ScoreSheet;
use App\Models\Seat; use App\Models\Seat;
use App\Models\Student; use App\Models\Student;
use App\Models\User; use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\Feature\Models\ScoreSheet;
uses(RefreshDatabase::class); uses(RefreshDatabase::class);

View File

@ -2,9 +2,9 @@
use App\Models\Audition; use App\Models\Audition;
use App\Models\Entry; use App\Models\Entry;
use App\Models\ScoreSheet;
use App\Models\User; use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\Feature\Models\ScoreSheet;
uses(RefreshDatabase::class); uses(RefreshDatabase::class);

View File

@ -3,6 +3,7 @@
use App\Models\Audition; use App\Models\Audition;
use App\Models\Entry; use App\Models\Entry;
use App\Models\Room; use App\Models\Room;
use App\Models\ScoreSheet;
use App\Models\ScoringGuide; use App\Models\ScoringGuide;
use App\Models\SubscoreDefinition; use App\Models\SubscoreDefinition;
use App\Models\User; use App\Models\User;
@ -10,8 +11,6 @@ use App\Settings;
use Database\Seeders\ScoreAllAuditions; use Database\Seeders\ScoreAllAuditions;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Artisan;
use Tests\Feature\Models\ScoreSheet;
use function Pest\Laravel\actingAs; use function Pest\Laravel\actingAs;
uses(RefreshDatabase::class); uses(RefreshDatabase::class);

View File

@ -101,3 +101,11 @@ it('will not accept scores for an entry in an audition with published advancemen
->assertRedirect(route('scores.chooseEntry')) ->assertRedirect(route('scores.chooseEntry'))
->assertSessionHas('error', $expectedError); ->assertSessionHas('error', $expectedError);
}); });
it('warns if the entry is flagged as a no-show', function () {
// Arrange
$response = validRequest();
// Act & Assert
$response
->assertOk()
->assertSee('marked as a no-show');
});