diff --git a/packages/entity/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.ts b/packages/entity/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.ts index 38b15df65..31e296c8b 100644 --- a/packages/entity/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.ts +++ b/packages/entity/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.ts @@ -35,6 +35,9 @@ export class AllowIfAllSubRulesAllowPrivacyPolicyRule< >, entity: TEntity, ): Promise { + if (this.subRules.length === 0) { + return RuleEvaluationResult.SKIP; + } const results = await Promise.all( this.subRules.map((subRule) => subRule.evaluateAsync(viewerContext, queryContext, evaluationContext, entity), diff --git a/packages/entity/src/rules/__tests__/AllowIfAllSubRulesAllowPrivacyPolicyRule-test.ts b/packages/entity/src/rules/__tests__/AllowIfAllSubRulesAllowPrivacyPolicyRule-test.ts index c1f6dbb09..896e93f00 100644 --- a/packages/entity/src/rules/__tests__/AllowIfAllSubRulesAllowPrivacyPolicyRule-test.ts +++ b/packages/entity/src/rules/__tests__/AllowIfAllSubRulesAllowPrivacyPolicyRule-test.ts @@ -62,3 +62,15 @@ describePrivacyPolicyRule( ], }, ); + +describePrivacyPolicyRule(new AllowIfAllSubRulesAllowPrivacyPolicyRule([]), { + skipCases: [ + { + viewerContext: instance(mock(ViewerContext)), + queryContext: instance(mock(EntityQueryContext)), + evaluationContext: + instance(mock>()), + entity: anything(), + }, + ], +});