Skip to content

Commit a893749

Browse files
optimizely.rb -> added variation id and experiment id to notification listerner payload
optimizely_user_context_spec.rb -> fixed unit tests
1 parent cfdd022 commit a893749

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

lib/optimizely.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,12 +185,17 @@ def create_optimizely_decision(user_context, flag_key, decision, reasons, decide
185185
feature_flag = config.get_feature_flag_from_key(flag_key)
186186
experiment = nil
187187
decision_source = Optimizely::DecisionService::DECISION_SOURCES['ROLLOUT']
188+
experiment_id = nil
189+
variation_id = nil
190+
188191
# Send impression event if Decision came from a feature test and decide options doesn't include disableDecisionEvent
189192
if decision.is_a?(Optimizely::DecisionService::Decision)
190193
experiment = decision.experiment
191194
rule_key = experiment ? experiment['key'] : nil
195+
experiment_id = experiment ? experiment['id'] : nil
192196
variation = decision['variation']
193197
variation_key = variation ? variation['key'] : nil
198+
variation_id = variation ? variation['id'] : nil
194199
feature_enabled = variation ? variation['featureEnabled'] : false
195200
decision_source = decision.source
196201
end
@@ -221,7 +226,9 @@ def create_optimizely_decision(user_context, flag_key, decision, reasons, decide
221226
variation_key: variation_key,
222227
rule_key: rule_key,
223228
reasons: should_include_reasons ? reasons : [],
224-
decision_event_dispatched: decision_event_dispatched
229+
decision_event_dispatched: decision_event_dispatched,
230+
experiment_id: experiment_id,
231+
variation_id: variation_id
225232
)
226233

227234
OptimizelyDecision.new(

spec/optimizely_user_context_spec.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,9 @@
251251
variation_key: '3324490562',
252252
rule_key: nil,
253253
reasons: [],
254-
decision_event_dispatched: true
254+
decision_event_dispatched: true,
255+
experiment_id: nil,
256+
variation_id: '3324490562'
255257
)
256258
user_context_obj = forced_decision_project_instance.create_user_context(user_id)
257259
context = Optimizely::OptimizelyUserContext::OptimizelyDecisionContext.new(feature_key, nil)
@@ -347,7 +349,9 @@
347349
variation_key: 'b',
348350
rule_key: 'exp_with_audience',
349351
reasons: ['Variation (b) is mapped to flag (feature_1), rule (exp_with_audience) and user (tester) in the forced decision map.'],
350-
decision_event_dispatched: true
352+
decision_event_dispatched: true,
353+
experiment_id: '10390977673',
354+
variation_id: '10416523121'
351355
)
352356
user_context_obj = Optimizely::OptimizelyUserContext.new(forced_decision_project_instance, user_id, original_attributes)
353357
context = Optimizely::OptimizelyUserContext::OptimizelyDecisionContext.new(feature_key, 'exp_with_audience')
@@ -464,7 +468,9 @@
464468
variation_key: '3324490562',
465469
rule_key: nil,
466470
reasons: [],
467-
decision_event_dispatched: true
471+
decision_event_dispatched: true,
472+
experiment_id: nil,
473+
variation_id: '3324490562'
468474
)
469475
user_context_obj = forced_decision_project_instance.create_user_context(user_id)
470476
context_with_flag = Optimizely::OptimizelyUserContext::OptimizelyDecisionContext.new(feature_key, nil)

0 commit comments

Comments
 (0)