expectException(\InvalidArgumentException::class); Role::approve([Role::TEAMER], Role::ADMIN); } public function testEffectiveRolesExcludeNominationsAndTheImplicitRoleUser(): void { $roles = [Role::USER, Role::TEAMER, Role::pending(Role::ADMIN)]; self::assertSame([Role::TEAMER], Role::effectiveOnly($roles)); self::assertSame([Role::pending(Role::ADMIN)], Role::pendingOnly($roles)); self::assertSame([Role::ADMIN => 'Administration'], Role::nominatedFrom($roles)); } public function testEveryRoleAndNominationHasALabel(): void { $labels = Role::labels(); foreach (Role::ALL as $role) { self::assertArrayHasKey($role, $labels); } foreach (Role::ADMINISTRATIVE as $role) { self::assertArrayHasKey(Role::pending($role), $labels); } } }