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>')