fix: Correct decision notification payload type for getVariation feature test decision #375
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
In
createProjectConfig
, we attempt to create an objectexperimentFeatureMap
whose keys are experiment IDs, and whose values are arrays of feature IDs. We loop over each experiment ID in each feature flag'sexperimentIds
, and updateexperimentFeatureMap
accordingly.The problem occurs when one of these experiments is in a group (had a
groupId
property). The inner loop breaks out by returningfalse
(this early iteration exit by returning false is a feature of lodashforEach
). Then, any remaining experiment IDs are wrongfully excluded fromexperimentFeatureMap
. For any of these skipped feature experiment IDs, theisFeatureExperiment
function will wrongly returnfalse
, leading to an incorrect decision notification payload.With this change, the loop always runs over all experiment IDs of each feature. The previous behavior of only assigning
feature.groupId
once is maintained.Test plan
New unit tests for
isFeatureExperiment
function of project config moduleIssues
https://optimizely.atlassian.net/browse/OASIS-5759