Refactor and test FilterController
This commit is contained in:
parent
a56e908f8c
commit
f3dd8bea0d
|
|
@ -20,14 +20,14 @@ class FilterController extends Controller
|
|||
|
||||
session(['adminEntryFilters' => $filters]);
|
||||
|
||||
return redirect('/admin/entries')->with('success', 'Filters Applied');
|
||||
return redirect(route('admin.entries.index'))->with('success', 'Filters Applied');
|
||||
}
|
||||
|
||||
public function clearAdminEntryFilter(Request $request)
|
||||
{
|
||||
session()->forget('adminEntryFilters');
|
||||
|
||||
return redirect('/admin/entries')->with('success', 'Filters Cleared');
|
||||
return redirect(route('admin.entries.index'))->with('success', 'Filters Cleared');
|
||||
}
|
||||
|
||||
public function adminStudentFilter(Request $request)
|
||||
|
|
@ -40,7 +40,7 @@ class FilterController extends Controller
|
|||
|
||||
session(['adminStudentFilters' => $filters]);
|
||||
|
||||
return redirect()->back()->with('success', 'Filters Applied');
|
||||
return redirect(route('admin.students.index'))->with('success', 'Filters Applied');
|
||||
}
|
||||
|
||||
public function clearAdminStudentFilter()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Entry;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
describe('controls filters on the admin entry page', function () {
|
||||
|
||||
it('can set filters for the adminEntry page', function () {
|
||||
actAsAdmin();
|
||||
$entry = Entry::factory()->create();
|
||||
$requestArray = [
|
||||
'id_filter' => $entry->id,
|
||||
'audition_filter' => $entry->audition->id,
|
||||
'school_filter' => $entry->student->school_id,
|
||||
'grade_filter' => $entry->student->grade,
|
||||
'first_name_filter' => $entry->student->first_name,
|
||||
'last_name_filter' => $entry->student->last_name,
|
||||
'entry_type_filter' => 'seating',
|
||||
'entries_per_page_filter' => 20,
|
||||
];
|
||||
$expectedArray = [
|
||||
'id' => $entry->id,
|
||||
'audition' => $entry->audition->id,
|
||||
'school' => $entry->student->school_id,
|
||||
'grade' => $entry->student->grade,
|
||||
'first_name' => $entry->student->first_name,
|
||||
'last_name' => $entry->student->last_name,
|
||||
'entry_type' => 'seating',
|
||||
'entries_per_page' => 20,
|
||||
];
|
||||
$response = $this->post(route('admin_entry_filter.set'), $requestArray);
|
||||
$response->assertRedirect(route('admin.entries.index'))
|
||||
->assertSessionHas('success', 'Filters Applied')
|
||||
->assertSessionHas('adminEntryFilters', $expectedArray);
|
||||
});
|
||||
|
||||
it('can clear filters for the adminEntry page', function () {
|
||||
actAsAdmin();
|
||||
$entry = Entry::factory()->create();
|
||||
$requestArray = [
|
||||
'id_filter' => $entry->id,
|
||||
'audition_filter' => $entry->audition->id,
|
||||
'school_filter' => $entry->student->school_id,
|
||||
'grade_filter' => $entry->student->grade,
|
||||
'first_name_filter' => $entry->student->first_name,
|
||||
'last_name_filter' => $entry->student->last_name,
|
||||
'entry_type_filter' => 'seating',
|
||||
'entries_per_page_filter' => 20,
|
||||
];
|
||||
$expectedArray = [
|
||||
'id' => $entry->id,
|
||||
'audition' => $entry->audition->id,
|
||||
'school' => $entry->student->school_id,
|
||||
'grade' => $entry->student->grade,
|
||||
'first_name' => $entry->student->first_name,
|
||||
'last_name' => $entry->student->last_name,
|
||||
'entry_type' => 'seating',
|
||||
'entries_per_page' => 20,
|
||||
];
|
||||
$this->post(route('admin_entry_filter.set'), $requestArray)->assertSessionHas('adminEntryFilters',
|
||||
$expectedArray);
|
||||
|
||||
$response = $this->get(route('admin_entry_filter.clear'), $requestArray);
|
||||
$response->assertRedirect(route('admin.entries.index'))
|
||||
->assertSessionHas('success', 'Filters Cleared')
|
||||
->assertSessionMissing('adminEntryFilters');
|
||||
});
|
||||
});
|
||||
|
||||
describe('controls filters on the admin student page', function () {
|
||||
it('can set filters for the admin student page', function () {
|
||||
actAsAdmin();
|
||||
$entry = Entry::factory()->create();
|
||||
$requestArray = [
|
||||
'school_filter' => $entry->student->school_id,
|
||||
'grade_filter' => $entry->student->grade,
|
||||
'first_name_filter' => $entry->student->first_name,
|
||||
'last_name_filter' => $entry->student->last_name,
|
||||
];
|
||||
$expectedArray = [
|
||||
'school' => $entry->student->school_id,
|
||||
'grade' => $entry->student->grade,
|
||||
'first_name' => $entry->student->first_name,
|
||||
'last_name' => $entry->student->last_name,
|
||||
];
|
||||
$response = $this->post(route('admin.students.filter.set'), $requestArray);
|
||||
$response->assertRedirect(route('admin.students.index'))
|
||||
->assertSessionHas('success', 'Filters Applied')
|
||||
->assertSessionHas('adminStudentFilters', $expectedArray);
|
||||
});
|
||||
|
||||
it('can clear filters for the admin student page', function () {
|
||||
actAsAdmin();
|
||||
$entry = Entry::factory()->create();
|
||||
$requestArray = [
|
||||
'school_filter' => $entry->student->school_id,
|
||||
'grade_filter' => $entry->student->grade,
|
||||
'first_name_filter' => $entry->student->first_name,
|
||||
'last_name_filter' => $entry->student->last_name,
|
||||
];
|
||||
$expectedArray = [
|
||||
'school' => $entry->student->school_id,
|
||||
'grade' => $entry->student->grade,
|
||||
'first_name' => $entry->student->first_name,
|
||||
'last_name' => $entry->student->last_name,
|
||||
];
|
||||
$this->post(route('admin.students.filter.set'), $requestArray)->assertSessionHas('adminStudentFilters',
|
||||
$expectedArray);
|
||||
|
||||
$response = $this->get(route('admin.students.filter.clear'));
|
||||
$response->assertRedirect(route('admin.students.index'))
|
||||
->assertSessionHas('success', 'Filters Cleared')
|
||||
->assertSessionMissing('adminStudentFilters');
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue