diff --git a/.gitmodules b/.gitmodules index 5c24c5b..e48e529 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "tests/engine/engine-tests/engine-test-data"] path = tests/engine/engine-tests/engine-test-data url = git@github.com:Flagsmith/engine-test-data.git - branch = v3.5.0 + branch = v3.7.0 diff --git a/flagsmith-engine/segments/evaluators.ts b/flagsmith-engine/segments/evaluators.ts index e3bc5ee..82551e8 100644 --- a/flagsmith-engine/segments/evaluators.ts +++ b/flagsmith-engine/segments/evaluators.ts @@ -119,9 +119,11 @@ function evaluateSubRules( ): boolean { if (!rule.rules || rule.rules.length === 0) return true; - return rule.rules.every((subRule: SegmentRule) => + const subRuleResults = rule.rules.map((subRule: SegmentRule) => traitsMatchSegmentRule(subRule, segmentKey, context) ); + + return evaluateRuleConditions(rule.type, subRuleResults); } function evaluateRuleConditions(ruleType: string, conditionResults: boolean[]): boolean { diff --git a/tests/engine/engine-tests/engine-test-data b/tests/engine/engine-tests/engine-test-data index 7840a13..4b29dc7 160000 --- a/tests/engine/engine-tests/engine-test-data +++ b/tests/engine/engine-tests/engine-test-data @@ -1 +1 @@ -Subproject commit 7840a1349b601df3b6b4a089f40864f659801afb +Subproject commit 4b29dc772a764364af2dd504ecefbdf74cf5473f