Refactor and test FilterController
This commit is contained in:
parent
a56e908f8c
commit
f3dd8bea0d
|
|
@ -20,14 +20,14 @@ class FilterController extends Controller
|
||||||
|
|
||||||
session(['adminEntryFilters' => $filters]);
|
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)
|
public function clearAdminEntryFilter(Request $request)
|
||||||
{
|
{
|
||||||
session()->forget('adminEntryFilters');
|
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)
|
public function adminStudentFilter(Request $request)
|
||||||
|
|
@ -40,7 +40,7 @@ class FilterController extends Controller
|
||||||
|
|
||||||
session(['adminStudentFilters' => $filters]);
|
session(['adminStudentFilters' => $filters]);
|
||||||
|
|
||||||
return redirect()->back()->with('success', 'Filters Applied');
|
return redirect(route('admin.students.index'))->with('success', 'Filters Applied');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function clearAdminStudentFilter()
|
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