Repository navigation
fix: Make TestData value_for_all return its value when targeting is off - #210
Merged
Merged
Conversation
Generated-by: termag
keelerm84
marked this pull request as ready for review
November 5, 2026 19:14
jsonbailey
approved these changes
Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ldclient_flagbuilder:value_for_all/2replaced the variations with the single value and calledvariation_for_all(0, ...), but left the off variation unchanged. A new test flag is a boolean flag with off variation 1, so the built flag had one variation and an off variation of 1. When targeting was off, the off variation was out of range and the flag returned the default value instead of the value. The function is documented to return the value whether targeting is on or off.value_for_all/2now also sets the off variation to 0.variation_for_all/2is unchanged. A new test inldclient_testdata_SUITEturns targeting off aftervalue_for_all/2and checks that the flag evaluates to the value.This matches the fix in launchdarkly/ruby-server-sdk#489.
Opened from termag
Note
Overview
value_for_all/2in the TestData flag builder now sets off variation to 0 after collapsing the flag to a single variation. Previously it only updated fallthrough viavariation_for_all, so the default boolean off variation 1 stayed in place; with one variation, evaluation used the client default when targeting was off despite the docs promising the same value in both states.A new Common Test case
test_value_for_all_targeting_offturns targeting off aftervalue_for_alland asserts the configured value is returned (not the default).Reviewed by Cursor Bugbot for commit d8f8593. Bugbot is set up for automated code reviews on this repo. Configure here.