|
28 | 28 | let(:error_handler) { Optimizely::RaiseErrorHandler.new }
|
29 | 29 | let(:spy_logger) { spy('logger') }
|
30 | 30 | let(:project_instance) { Optimizely::Project.new(config_body_JSON, nil, spy_logger, error_handler) }
|
31 |
| - let(:forced_decision_project_instance) { Optimizely::Project.new(forced_decision_JSON, nil, spy_logger, error_handler) } |
| 31 | + let(:forced_decision_project_instance) { Optimizely::Project.new(forced_decision_JSON, nil, spy_logger, error_handler, false, nil, nil, nil, nil, nil, [], {batch_size: 1}) } |
32 | 32 | let(:integration_project_instance) { Optimizely::Project.new(integration_JSON, nil, spy_logger, error_handler) }
|
33 | 33 | let(:impression_log_url) { 'https://logx.optimizely.com/v1/events' }
|
34 | 34 | let(:good_response_data) do
|
|
258 | 258 | forced_decision = Optimizely::OptimizelyUserContext::OptimizelyForcedDecision.new('3324490562')
|
259 | 259 | user_context_obj.set_forced_decision(context, forced_decision)
|
260 | 260 | decision = user_context_obj.decide(feature_key)
|
| 261 | + |
| 262 | + # wait for batch processing thread to send event |
| 263 | + sleep 0.1 until forced_decision_project_instance.event_processor.event_queue.empty? |
| 264 | + |
261 | 265 | expect(forced_decision_project_instance.event_dispatcher).to have_received(:dispatch_event).with(Optimizely::Event.new(:post, impression_log_url, expected_params, post_headers))
|
262 | 266 | expect(decision.variation_key).to eq('3324490562')
|
263 | 267 | expect(decision.rule_key).to be_nil
|
|
350 | 354 | forced_decision = Optimizely::OptimizelyUserContext::OptimizelyForcedDecision.new('b')
|
351 | 355 | user_context_obj.set_forced_decision(context, forced_decision)
|
352 | 356 | decision = user_context_obj.decide(feature_key, [Optimizely::Decide::OptimizelyDecideOption::INCLUDE_REASONS])
|
| 357 | + |
| 358 | + # wait for batch processing thread to send event |
| 359 | + sleep 0.1 until forced_decision_project_instance.event_processor.event_queue.empty? |
| 360 | + |
353 | 361 | expect(forced_decision_project_instance.event_dispatcher).to have_received(:dispatch_event).with(Optimizely::Event.new(:post, impression_log_url, expected_params, post_headers))
|
354 | 362 | expect(decision.variation_key).to eq('b')
|
355 | 363 | expect(decision.rule_key).to eq('exp_with_audience')
|
|
471 | 479 | user_context_obj.remove_forced_decision(context_with_rule)
|
472 | 480 | # decision should be based on flag forced decision
|
473 | 481 | decision = user_context_obj.decide(feature_key)
|
| 482 | + |
| 483 | + # wait for batch processing thread to send event |
| 484 | + sleep 0.1 until forced_decision_project_instance.event_processor.event_queue.empty? |
| 485 | + |
474 | 486 | expect(forced_decision_project_instance.event_dispatcher).to have_received(:dispatch_event).with(Optimizely::Event.new(:post, impression_log_url, expected_params, post_headers))
|
475 | 487 | expect(decision.variation_key).to eq('3324490562')
|
476 | 488 | expect(decision.rule_key).to be_nil
|
|
0 commit comments