Skip to content

Commit af8f129

Browse files
committed
fixup: implementation
1 parent 8219e8f commit af8f129

6 files changed

Lines changed: 9 additions & 11 deletions

File tree

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/rpc/RpcResolver.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ private <ValT, ReqT extends Message, ResT extends Message> ProviderEvaluation<Va
254254
final ProviderEvaluation.ProviderEvaluationBuilder<ValT> resultBuilder;
255255
if ("DEFAULT".equals(reason) && variant.isEmpty()) {
256256
resultBuilder = ProviderEvaluation.<ValT>builder().value(defaultValue);
257+
} else if ("DISABLED".equals(reason)) {
258+
resultBuilder = ProviderEvaluation.<ValT>builder().value(defaultValue);
257259
} else {
258260
resultBuilder = ProviderEvaluation.<ValT>builder().value(value).variant(variant);
259261
}

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolverTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ public void disabledFlag() throws Exception {
313313
ProviderEvaluation<Boolean> disabledFlag =
314314
inProcessResolver.booleanEvaluation("disabledFlag", false, new ImmutableContext());
315315
assertEquals(null, disabledFlag.getErrorCode());
316-
assertEquals(null, disabledFlag.getValue());
316+
assertEquals(false, disabledFlag.getValue());
317317
assertEquals(null, disabledFlag.getVariant());
318318
assertEquals(Reason.DISABLED.toString(), disabledFlag.getReason());
319319

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/MockEvaluator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ private <T> ProviderEvaluation<T> resolve(Class<T> type, String key, T defaultVa
101101
// state check
102102
if ("DISABLED".equals(flag.getState())) {
103103
return ProviderEvaluation.<T>builder()
104+
.value(defaultValue)
104105
.reason(Reason.DISABLED.toString())
105106
.flagMetadata(getFlagMetadata(flagSetMetadata, flag))
106107
.build();

tools/flagd-api-testkit/src/main/java/dev/openfeature/contrib/tools/flagd/api/testkit/EvaluationSteps.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,6 @@ public void resolvedValueEquals(String value) throws IOException {
9797
assertThat(state.evaluation.getValue()).isEqualTo(EvaluatorUtils.convert(value, state.flagType));
9898
}
9999

100-
/** Asserts the resolved value is absent (null) — used for disabled flags where the evaluator omits the value. */
101-
@Then("the resolved value should be absent")
102-
public void resolvedValueIsAbsent() {
103-
assertThat(state.evaluation.getValue()).isNull();
104-
}
105-
106100
/** Asserts the evaluation reason matches the expected value. */
107101
@Then("the reason should be {string}")
108102
public void reasonEquals(String reason) {

tools/flagd-core/src/main/java/dev/openfeature/contrib/tools/flagd/core/FlagdCore.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,10 @@ private <T> ProviderEvaluation<T> resolve(Class<T> type, String key, T defaultVa
210210
.build();
211211
}
212212

213-
// state check
213+
// state check (DISABLED flags default with reason = DEFAULT)
214214
if ("DISABLED".equals(flag.getState())) {
215215
return ProviderEvaluation.<T>builder()
216+
.value(defaultValue)
216217
.reason(Reason.DISABLED.toString())
217218
.flagMetadata(getFlagMetadata(currentFlagSetMetadata, flag))
218219
.build();

tools/flagd-core/src/test/java/dev/openfeature/contrib/tools/flagd/core/FlagdCoreTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,18 @@ void resolveBooleanValue_flagNotFound_returnsError() {
8080
}
8181

8282
@Test
83-
void resolveBooleanValue_disabledFlag_returnsDisabledReason() {
83+
void resolveBooleanValue_disabledFlag_returnsDisabledReasonWithDefault() {
8484
ProviderEvaluation<Boolean> result =
8585
flagdCore.resolveBooleanValue("disabledFlag", false, new ImmutableContext());
8686

8787
assertThat(result.getErrorCode()).isNull();
88-
assertThat(result.getValue()).isNull();
88+
assertThat(result.getValue()).isFalse();
8989
assertThat(result.getVariant()).isNull();
9090
assertThat(result.getReason()).isEqualTo(Reason.DISABLED.toString());
9191
}
9292

9393
@Test
94-
void resolveObjectValue_disabledFlag_returnsDisabledReasonWithNullValue() {
94+
void resolveObjectValue_disabledFlag_returnsDisabledReasonWithDefault() {
9595
ProviderEvaluation<Value> result =
9696
flagdCore.resolveObjectValue("disabledFlag", null, new ImmutableContext());
9797

0 commit comments

Comments
 (0)