diff --git a/app/Http/Controllers/Admin/PrelimDefinitionController.php b/app/Http/Controllers/Admin/PrelimDefinitionController.php index cd094c5..a71b272 100644 --- a/app/Http/Controllers/Admin/PrelimDefinitionController.php +++ b/app/Http/Controllers/Admin/PrelimDefinitionController.php @@ -60,4 +60,11 @@ class PrelimDefinitionController extends Controller return redirect()->route('admin.prelim_definitions.index')->with('success', 'Prelim definition updated'); } + + public function destroy(PrelimDefinition $prelimDefinition) + { + $prelimDefinition->delete(); + + return redirect()->route('admin.prelim_definitions.index')->with('success', 'Prelim definition deleted'); + } } diff --git a/resources/views/admin/prelim_definitions/createOrUpdate.blade.php b/resources/views/admin/prelim_definitions/createOrUpdate.blade.php index ed620b0..1471bbc 100644 --- a/resources/views/admin/prelim_definitions/createOrUpdate.blade.php +++ b/resources/views/admin/prelim_definitions/createOrUpdate.blade.php @@ -5,6 +5,12 @@ @if($prelim) Modify Prelim - {{ $prelim->audition->name }} + + + Confirm that you'd like to delete prelim auditions for {{ $prelim->audition->name }}. +{{-- TODO: Block deleting a prelim audition if there are prelim scores --}} + + @else Create Prelim Audition @endif diff --git a/resources/views/admin/prelim_definitions/index.blade.php b/resources/views/admin/prelim_definitions/index.blade.php index 13a58fe..7334222 100644 --- a/resources/views/admin/prelim_definitions/index.blade.php +++ b/resources/views/admin/prelim_definitions/index.blade.php @@ -3,6 +3,7 @@ Preliminary Auditions + Click to edit or delete Add Prelim @@ -18,11 +19,12 @@ @foreach ($prelims as $prelim) - - {{ $prelim->audition->name }} - {{ $prelim->passing_score }} - {{ $prelim->room->name }} - {{ $prelim->scoringGuide->name }} + + {{ $prelim->audition->name }} + {{ $prelim->passing_score }} + {{ $prelim->room->name }} + {{ $prelim->scoringGuide->name }} @endforeach diff --git a/tests/Feature/app/Http/Controllers/Admin/PrelimDefinitionControllerTest.php b/tests/Feature/app/Http/Controllers/Admin/PrelimDefinitionControllerTest.php index 3b7dd2b..4b56333 100644 --- a/tests/Feature/app/Http/Controllers/Admin/PrelimDefinitionControllerTest.php +++ b/tests/Feature/app/Http/Controllers/Admin/PrelimDefinitionControllerTest.php @@ -146,3 +146,30 @@ describe('PrelimDefinitionController::update', function () { expect($this->prelim->fresh()->passing_score)->toEqual(90); }); }); + +describe('PrelimDefinitionController::destroy', function () { + beforeEach(function () { + $this->audition = Audition::factory()->create(); + $this->prelim = PrelimDefinition::create([ + 'audition_id' => $this->audition->id, + 'room_id' => 0, + 'scoring_guide_id' => 0, + 'passing_score' => 75, + ]); + }); + it('denies access to a non-admin user', function () { + $this->delete(route('admin.prelim_definitions.destroy', $this->prelim))->assertRedirect(route('home')); + actAsNormal(); + $this->delete(route('admin.prelim_definitions.destroy', $this->prelim))->assertRedirect(route('dashboard')); + actAsTab(); + $this->delete(route('admin.prelim_definitions.destroy', $this->prelim))->assertRedirect(route('dashboard')); + }); + + it('deletes a prelim definition', function () { + actAsAdmin(); + $response = $this->delete(route('admin.prelim_definitions.destroy', $this->prelim)); + $response + ->assertRedirect(route('admin.prelim_definitions.index')); + expect(PrelimDefinition::count())->toEqual(0); + }); +});