set('tenantpilot.supported_policy_types', [ ['type' => 'deviceConfiguration', 'label' => 'Device Configuration'], ['type' => 'deviceCompliancePolicy', 'label' => 'Device Compliance'], ]); config()->set('tenantpilot.foundation_types', [ ['type' => 'assignmentFilter', 'label' => 'Assignment Filter'], ]); $scope = BaselineScope::fromJsonb([ 'policy_types' => [], 'foundation_types' => [], ])->expandDefaults(); expect($scope->policyTypes)->toBe([ 'deviceCompliancePolicy', 'deviceConfiguration', ]); expect($scope->foundationTypes)->toBe([]); expect($scope->allTypes())->toBe([ 'deviceCompliancePolicy', 'deviceConfiguration', ]); }); it('filters unknown types and does not allow foundations inside policy_types', function () { config()->set('tenantpilot.supported_policy_types', [ ['type' => 'deviceConfiguration'], ]); config()->set('tenantpilot.foundation_types', [ ['type' => 'assignmentFilter'], ]); $scope = BaselineScope::fromJsonb([ 'policy_types' => ['deviceConfiguration', 'assignmentFilter', 'unknown'], 'foundation_types' => ['assignmentFilter', 'unknown'], ])->expandDefaults(); expect($scope->policyTypes)->toBe(['deviceConfiguration']); expect($scope->foundationTypes)->toBe(['assignmentFilter']); expect($scope->allTypes())->toBe(['assignmentFilter', 'deviceConfiguration']); });