Skip to content

Commit 06ec14b

Browse files
authored
fix(ForcedDecision): remove config-ready check from forced-decision apis (#328)
* remove config-ready check from forced-decision apis * unit test fixed.
1 parent 82644c6 commit 06ec14b

File tree

2 files changed

+7
-24
lines changed

2 files changed

+7
-24
lines changed

pkg/client/optimizely_user_context.go

+1-18
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ func (o *OptimizelyUserContext) TrackEvent(eventKey string, eventTags map[string
121121
// SetForcedDecision sets the forced decision (variation key) for a given decision context (flag key and optional rule key).
122122
// returns true if the forced decision has been set successfully.
123123
func (o *OptimizelyUserContext) SetForcedDecision(context pkgDecision.OptimizelyDecisionContext, decision pkgDecision.OptimizelyForcedDecision) bool {
124-
if _, err := o.optimizely.getProjectConfig(); err != nil {
125-
o.optimizely.logger.Error("Optimizely instance is not valid, failing setForcedDecision call.", err)
126-
return false
127-
}
128124
if o.forcedDecisionService == nil {
129125
o.forcedDecisionService = pkgDecision.NewForcedDecisionService(o.GetUserID())
130126
}
@@ -133,23 +129,14 @@ func (o *OptimizelyUserContext) SetForcedDecision(context pkgDecision.Optimizely
133129

134130
// GetForcedDecision returns the forced decision for a given flag and an optional rule
135131
func (o *OptimizelyUserContext) GetForcedDecision(context pkgDecision.OptimizelyDecisionContext) (pkgDecision.OptimizelyForcedDecision, error) {
136-
forcedDecision := pkgDecision.OptimizelyForcedDecision{}
137-
if _, err := o.optimizely.getProjectConfig(); err != nil {
138-
o.optimizely.logger.Error("Optimizely instance is not valid, failing getForcedDecision call.", err)
139-
return forcedDecision, err
140-
}
141132
if o.forcedDecisionService == nil {
142-
return forcedDecision, errors.New("decision not found")
133+
return pkgDecision.OptimizelyForcedDecision{}, errors.New("decision not found")
143134
}
144135
return o.forcedDecisionService.GetForcedDecision(context)
145136
}
146137

147138
// RemoveForcedDecision removes the forced decision for a given flag and an optional rule.
148139
func (o *OptimizelyUserContext) RemoveForcedDecision(context pkgDecision.OptimizelyDecisionContext) bool {
149-
if _, err := o.optimizely.getProjectConfig(); err != nil {
150-
o.optimizely.logger.Error("Optimizely instance is not valid, failing removeForcedDecision call.", err)
151-
return false
152-
}
153140
if o.forcedDecisionService == nil {
154141
return false
155142
}
@@ -158,10 +145,6 @@ func (o *OptimizelyUserContext) RemoveForcedDecision(context pkgDecision.Optimiz
158145

159146
// RemoveAllForcedDecisions removes all forced decisions bound to this user context.
160147
func (o *OptimizelyUserContext) RemoveAllForcedDecisions() bool {
161-
if _, err := o.optimizely.getProjectConfig(); err != nil {
162-
o.optimizely.logger.Error("Optimizely instance is not valid, failing removeForcedDecision call.", err)
163-
return false
164-
}
165148
if o.forcedDecisionService == nil {
166149
return true
167150
}

pkg/client/optimizely_user_context_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -1063,14 +1063,14 @@ func (s *OptimizelyUserContextTestSuite) TestForcedDecisionWithNilConfig() {
10631063
user := s.OptimizelyClient.CreateUserContext(s.userID, nil)
10641064
s.Nil(user.forcedDecisionService)
10651065

1066-
s.False(user.SetForcedDecision(decision.OptimizelyDecisionContext{FlagKey: flagKeyA, RuleKey: ruleKey}, decision.OptimizelyForcedDecision{VariationKey: variationKeyA}))
1067-
s.Nil(user.forcedDecisionService)
1066+
s.True(user.SetForcedDecision(decision.OptimizelyDecisionContext{FlagKey: flagKeyA, RuleKey: ruleKey}, decision.OptimizelyForcedDecision{VariationKey: variationKeyA}))
1067+
s.NotNil(user.forcedDecisionService)
10681068

10691069
forcedDecision, err := user.GetForcedDecision(decision.OptimizelyDecisionContext{FlagKey: flagKeyA, RuleKey: ruleKey})
1070-
s.Equal("", forcedDecision.VariationKey)
1071-
s.Error(err)
1072-
s.False(user.RemoveForcedDecision(decision.OptimizelyDecisionContext{FlagKey: flagKeyA, RuleKey: ruleKey}))
1073-
s.False(user.RemoveAllForcedDecisions())
1070+
s.Equal(variationKeyA, forcedDecision.VariationKey)
1071+
s.NoError(err)
1072+
s.True(user.RemoveForcedDecision(decision.OptimizelyDecisionContext{FlagKey: flagKeyA, RuleKey: ruleKey}))
1073+
s.True(user.RemoveAllForcedDecisions())
10741074
}
10751075

10761076
func (s *OptimizelyUserContextTestSuite) TestForcedDecision() {

0 commit comments

Comments
 (0)