diff --git a/lib/optimizely/optimizely_user_context.rb b/lib/optimizely/optimizely_user_context.rb index 303e51d0..d1715b7c 100644 --- a/lib/optimizely/optimizely_user_context.rb +++ b/lib/optimizely/optimizely_user_context.rb @@ -149,7 +149,9 @@ def remove_forced_decision(context) # # @return - true if forced decisions have been removed successfully. - def remove_all_forced_decision + def remove_all_forced_decisions + return false if @optimizely_client&.get_optimizely_config.nil? + @forced_decision_mutex.synchronize { @forced_decisions.clear } true end diff --git a/spec/optimizely_user_context_spec.rb b/spec/optimizely_user_context_spec.rb index cf02a5e1..7a7d7bdf 100644 --- a/spec/optimizely_user_context_spec.rb +++ b/spec/optimizely_user_context_spec.rb @@ -97,7 +97,7 @@ expect(status).to eq(decision) status = user_context_obj.remove_forced_decision(context) expect(status).to be true - status = user_context_obj.remove_all_forced_decision + status = user_context_obj.remove_all_forced_decisions expect(status).to be true end @@ -547,7 +547,7 @@ expect(user_context_obj.get_forced_decision(context_with_flag)).to eq(decision_for_flag) expect(user_context_obj.get_forced_decision(context_with_rule)).to eq(decision_for_rule) - user_context_obj.remove_all_forced_decision + user_context_obj.remove_all_forced_decisions expect(user_context_obj.get_forced_decision(context_with_flag)).to be_nil expect(user_context_obj.get_forced_decision(context_with_rule)).to be_nil @@ -629,7 +629,7 @@ allow(user_context_obj).to receive(:set_forced_decision) allow(user_context_obj).to receive(:get_forced_decision) allow(user_context_obj).to receive(:remove_forced_decision) - allow(user_context_obj).to receive(:remove_all_forced_decision) + allow(user_context_obj).to receive(:remove_all_forced_decisions) context_with_flag_1 = Optimizely::OptimizelyUserContext::OptimizelyDecisionContext.new('0', nil) decision_for_flag_1 = Optimizely::OptimizelyUserContext::OptimizelyForcedDecision.new('var') @@ -685,7 +685,7 @@ # remove all forced decision threads << Thread.new do - user_context_obj.remove_all_forced_decision + user_context_obj.remove_all_forced_decisions end threads.each(&:join) @@ -696,7 +696,7 @@ expect(user_context_obj).to have_received(:get_forced_decision).with(context_with_flag_2).exactly(100).times expect(user_context_obj).to have_received(:remove_forced_decision).with(context_with_flag_1).exactly(100).times expect(user_context_obj).to have_received(:remove_forced_decision).with(context_with_flag_2).exactly(100).times - expect(user_context_obj).to have_received(:remove_all_forced_decision).once + expect(user_context_obj).to have_received(:remove_all_forced_decisions).once end end end