spec/dashboard_spec.rb in split-3.3.2 vs spec/dashboard_spec.rb in split-3.4.0

- old
+ new

@@ -27,10 +27,14 @@ } let(:red_link) { link("red") } let(:blue_link) { link("blue") } + before(:each) do + Split.configuration.beta_probability_simulations = 1 + end + it "should respond to /" do get '/' expect(last_response).to be_ok end @@ -72,21 +76,43 @@ end end end describe "force alternative" do - let!(:user) do - Split::User.new(@app, { experiment.name => 'a' }) - end + context "initial version" do + let!(:user) do + Split::User.new(@app, { experiment.name => 'red' }) + end - before do - allow(Split::User).to receive(:new).and_return(user) + before do + allow(Split::User).to receive(:new).and_return(user) + end + + it "should set current user's alternative" do + blue_link.participant_count = 7 + post "/force_alternative?experiment=#{experiment.name}", alternative: "blue" + expect(user[experiment.key]).to eq("blue") + expect(blue_link.participant_count).to eq(8) + end end - it "should set current user's alternative" do - post "/force_alternative?experiment=#{experiment.name}", alternative: "b" - expect(user[experiment.name]).to eq("b") + context "incremented version" do + let!(:user) do + experiment.increment_version + Split::User.new(@app, { "#{experiment.name}:#{experiment.version}" => 'red' }) + end + + before do + allow(Split::User).to receive(:new).and_return(user) + end + + it "should set current user's alternative" do + blue_link.participant_count = 7 + post "/force_alternative?experiment=#{experiment.name}", alternative: "blue" + expect(user[experiment.key]).to eq("blue") + expect(blue_link.participant_count).to eq(8) + end end end describe "index page" do context "with winner" do @@ -118,11 +144,11 @@ end it "removes winner" do post "/reopen?experiment=#{experiment.name}" - expect(experiment).to_not have_winner + expect(Split::ExperimentCatalog.find(experiment.name)).to_not have_winner end it "keeps existing stats" do red_link.participant_count = 5 blue_link.participant_count = 7 @@ -165,22 +191,17 @@ expect(last_response).to be_redirect expect(experiment.winner.name).to eq('red') end it "should display the start date" do - experiment_start_time = Time.parse('2011-07-07') - expect(Time).to receive(:now).at_least(:once).and_return(experiment_start_time) - experiment + experiment.start get '/' - expect(last_response.body).to include('<small>2011-07-07</small>') + expect(last_response.body).to include("<small>#{experiment.start_time.strftime('%Y-%m-%d')}</small>") end it "should handle experiments without a start date" do - experiment_start_time = Time.parse('2011-07-07') - expect(Time).to receive(:now).at_least(:once).and_return(experiment_start_time) - Split.redis.hdel(:experiment_start_times, experiment.name) get '/' expect(last_response.body).to include('<small>Unknown</small>')