create(); $noJudgeUser = User::factory()->create(); $judgeUser = User::factory()->create(); $adminNoJudgeUser = User::factory()->admin()->create(); $room->judges()->attach($judgeUser); Settings::set('judging_enabled', false); actingAs($noJudgeUser); get(route('dashboard'))->assertDontSee('Judging'); actingAs($judgeUser); get(route('dashboard'))->assertDontSee('Judging'); actingAs($adminNoJudgeUser); get(route('dashboard'))->assertDontSee('Judging'); Settings::set('judging_enabled', true); actingAs($noJudgeUser); get(route('dashboard'))->assertDontSee('Judging'); actingAs($judgeUser); get(route('dashboard'))->assertSee('Judging'); actingAs($adminNoJudgeUser); get(route('dashboard'))->assertDontSee('Judging'); }); it('only shows Administration and Setup menus when the user is an administrator', function () { // Arrange $adminUser = User::factory()->admin()->create(); $nonAdminUser = User::factory()->create(); actingAs($adminUser); get(route('dashboard'))->assertSee('Administration')->assertSee('Setup'); actingAs($nonAdminUser); get(route('dashboard'))->assertDontSee('Administration')->assertDontSee('Setup'); }); it('only shows the Tabulation dropdown to tabulators and administrators', function () { // Arrange $adminUser = User::factory()->admin()->create(); $tabUser = User::factory()->tab()->create(); $normalUser = User::factory()->create(); // Act & Assert actingAs($adminUser); get(route('dashboard'))->assertSee('Tabulation'); actingAs($tabUser); get(route('dashboard'))->assertSee('Tabulation'); actingAs($normalUser); get(route('dashboard'))->assertDontSee('Tabulation'); });