assertOk(); }); it('normal users cannot see entries index page', function () { // Arrange actAsNormal(); get(route('admin.entries.index')) ->assertRedirect(route('dashboard')); // Act & Assert }); it('does not allow guests to see the entries index page', function () { // Arrange get(route('admin.entries.index')) ->assertRedirect(route('home')); }); it('shows entries on the index page', function () { $entries = Entry::factory()->count(2)->create(); actAsAdmin(); $response = get(route('admin.entries.index')) ->assertOk(); foreach ($entries as $entry) { $response ->assertSee($entry->id) ->assertSee($entry->audition->name) ->assertSee($entry->student->full_name()) ->assertSee($entry->student->grade) ->assertSee($entry->school->name); } }); it('has a link to add a new entry', function () { actAsAdmin(); get(route('admin.entries.index')) ->assertSee('New Entry') ->assertSee(route('admin.entries.create')); }); it('has a link to edit each entry', function () { $entries = Entry::factory()->count(2)->create(); actAsAdmin(); $response = get(route('admin.entries.index')) ->assertOk(); foreach ($entries as $entry) { $response ->assertSee(route('admin.entries.edit', $entry)); } }); it('has pagination after 10 entries', function () { Entry::factory()->count(10)->create(); actAsAdmin(); get(route('admin.entries.index')) ->assertOk() ->assertDontSee('Previous') ->assertDontSee('Next'); Entry::factory()->count(1)->create(); get(route('admin.entries.index')) ->assertOk() ->assertSee('Next'); get(route('admin.entries.index', ['page' => 2])) ->assertOk() ->assertSee('Previous') ->assertDontSee('Next'); Entry::factory()->count(20)->create(); get(route('admin.entries.index', ['page' => 2])) ->assertOk() ->assertSee('Previous') ->assertSee('Next'); });