assertRedirect(route('home')); actAsNormal(); get((route('admin.auditions.index'))) ->assertRedirect('/dashboard') ->assertSessionHas('error', 'You are not authorized to perform this action'); actasAdmin(); get((route('admin.auditions.index'))) ->assertOk(); }); it('has a link to add a new audition', function () { // Arrange actAsAdmin(); // Act & Assert get((route('admin.auditions.index'))) ->assertOk() ->assertSee('New Audition') ->assertSee(route('admin.auditions.create')); }); it('shows audition data', function () { // Arrange $auditions = Audition::factory()->count(10)->create(); actAsAdmin(); // Act & Assert $response = get((route('admin.auditions.index'))); $response->assertOk(); foreach ($auditions as $audition) { $response->assertElementExists('#auditionRow-'.$audition->id, function (AssertElement $element) use ($audition) { $element->containsText($audition->event->name) ->containsText($audition->name) ->containsText($audition->entry_deadline) ->containsText($audition->display_fee()) ->containsText($audition->minimum_grade.' - '.$audition->maximum_grade) ->containsText($audition->entries->count()); }); } });