Skip to content

Commit 75749e6

Browse files
authored
fix: Multivariate sgement overrides not evaluated (#194)
1 parent 9b55de9 commit 75749e6

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[submodule "src/test/java/com/flagsmith/flagengine/enginetestdata"]
22
path = src/test/java/com/flagsmith/flagengine/enginetestdata
33
url = git@github.com:Flagsmith/engine-test-data.git
4-
tag = v3.2.1
4+
tag = v3.4.1

src/main/java/com/flagsmith/flagengine/Engine.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,22 +124,20 @@ private static Flags evaluateFeatures(
124124

125125
if (contextFeatures != null) {
126126
for (FeatureContext featureContext : contextFeatures.getAdditionalProperties().values()) {
127+
String reason;
127128
if (segmentFeatureContexts.containsKey(featureContext.getName())) {
128129
ImmutablePair<String, FeatureContext> segmentNameFeaturePair = segmentFeatureContexts
129130
.get(featureContext.getName());
130131
featureContext = segmentNameFeaturePair.getRight();
131-
flags.setAdditionalProperty(
132-
featureContext.getName(),
133-
new FlagResult().withEnabled(featureContext.getEnabled())
134-
.withName(featureContext.getName())
135-
.withValue(featureContext.getValue())
136-
.withReason(
137-
"TARGETING_MATCH; segment=" + segmentNameFeaturePair.getLeft())
138-
.withMetadata(featureContext.getMetadata()));
132+
reason = "TARGETING_MATCH; segment=" + segmentNameFeaturePair.getLeft();
139133
} else {
140-
flags.setAdditionalProperty(featureContext.getName(),
141-
getFlagResultFromFeatureContext(featureContext, identityKey));
134+
reason = "DEFAULT";
142135
}
136+
flags.setAdditionalProperty(featureContext.getName(),
137+
getFlagResultFromFeatureContext(
138+
featureContext,
139+
identityKey,
140+
reason));
143141
}
144142
}
145143

@@ -148,7 +146,8 @@ private static Flags evaluateFeatures(
148146

149147
private static FlagResult getFlagResultFromFeatureContext(
150148
FeatureContext featureContext,
151-
String identityKey) {
149+
String identityKey,
150+
String reason) {
152151
if (identityKey != null) {
153152
List<FeatureValue> variants = featureContext.getVariants();
154153
if (variants != null) {
@@ -183,7 +182,7 @@ private static FlagResult getFlagResultFromFeatureContext(
183182
return new FlagResult().withEnabled(featureContext.getEnabled())
184183
.withName(featureContext.getName())
185184
.withValue(featureContext.getValue())
186-
.withReason("DEFAULT")
185+
.withReason(reason)
187186
.withMetadata(featureContext.getMetadata());
188187
}
189188
}
Submodule enginetestdata updated 104 files

0 commit comments

Comments
 (0)