From 0a798d5c2d2e959aa1f76d671dd10c269dd1871d Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Thu, 5 Nov 2026 18:35:42 +0000 Subject: [PATCH] fix: Make TestData valueForAll return its value when targeting is off Generated-by: termag --- .../sdk/server/integrations/TestData.java | 2 +- .../sdk/server/integrations/TestDataTest.java | 12 ++++++++++++ .../server/integrations/TestDataWithClientTest.java | 9 +++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java index 834e2926..0645c57c 100644 --- a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java +++ b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java @@ -430,7 +430,7 @@ public FlagBuilder variationForAll(int variationIndex) { public FlagBuilder valueForAll(LDValue value) { variations.clear(); variations.add(value); - return variationForAll(0); + return variationForAll(0).offVariation(0); } /** diff --git a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java index 5a81d322..99ef6e02 100644 --- a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java +++ b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java @@ -204,6 +204,18 @@ public void flagConfigSimpleBoolean() throws Exception { ); } + @Test + public void valueForAllSetsOffVariationToTheValue() throws Exception { + verifyFlag( + f -> f.valueForAll(LDValue.of("x")), + fb -> fb.on(true).variations("x").offVariation(0).fallthroughVariation(0) + ); + verifyFlag( + f -> f.valueForAll(LDValue.of("x")).on(false), + fb -> fb.on(false).variations("x").offVariation(0).fallthroughVariation(0) + ); + } + @Test public void usingBooleanConfigMethodsForcesFlagToBeBoolean() throws Exception { Function expectedBooleanFlag = fb -> diff --git a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java index 1e63bcb3..c772e218 100644 --- a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java +++ b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java @@ -71,6 +71,15 @@ public void deletesFlag() throws Exception { } } + @Test + public void valueForAllReturnsValueWhenTargetingIsOff() throws Exception { + td.update(td.flag("flag").valueForAll(LDValue.of("x")).on(false)); + + try (LDClient client = new LDClient(SDK_KEY, config)) { + assertThat(client.stringVariation("flag", LDContext.create("user"), "default"), equalTo("x")); + } + } + @Test public void usesTargets() throws Exception { td.update(td.flag("flag").fallthroughVariation(false).variationForUser("user1", true));