spec/dashboard_spec.rb in split-0.5.0 vs spec/dashboard_spec.rb in split-0.6.0
- old
+ new
@@ -3,47 +3,63 @@
require 'split/dashboard'
describe Split::Dashboard do
include Rack::Test::Methods
+ let(:link_color) {
+ Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ }
+
+ def link(color)
+ Split::Alternative.new(color, 'link_color')
+ end
+
+ let(:red_link) {
+ link("red")
+ }
+
+ let(:blue_link) {
+ link("blue")
+ }
+
def app
@app ||= Split::Dashboard
end
it "should respond to /" do
get '/'
last_response.should be_ok
end
it "should reset an experiment" do
- experiment = Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ experiment = link_color
- red = Split::Alternative.new('red', 'link_color')
- blue = Split::Alternative.new('blue', 'link_color')
- red.participant_count = 5
- blue.participant_count = 6
+ red_link.participant_count = 5
+ blue_link.participant_count = 7
+ experiment.winner = 'blue'
post '/reset/link_color'
last_response.should be_redirect
- new_red_count = Split::Alternative.new('red', 'link_color').participant_count
- new_blue_count = Split::Alternative.new('blue', 'link_color').participant_count
+ new_red_count = red_link.participant_count
+ new_blue_count = blue_link.participant_count
new_blue_count.should eql(0)
new_red_count.should eql(0)
+ experiment.winner.should be_nil
end
it "should delete an experiment" do
- experiment = Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ experiment = link_color
delete '/link_color'
last_response.should be_redirect
Split::Experiment.find('link_color').should be_nil
end
it "should mark an alternative as the winner" do
- experiment = Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ experiment = link_color
experiment.winner.should be_nil
post '/link_color', :alternative => 'red'
last_response.should be_redirect
@@ -51,20 +67,20 @@
end
it "should display the start date" do
experiment_start_time = Time.parse('2011-07-07')
Time.stub(:now => experiment_start_time)
- experiment = Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ experiment = link_color
get '/'
last_response.body.should include('<small>2011-07-07</small>')
end
it "should handle experiments without a start date" do
experiment_start_time = Time.parse('2011-07-07')
Time.stub(:now => experiment_start_time)
- experiment = Split::Experiment.find_or_create('link_color', 'blue', 'red')
+ experiment = link_color
Split.redis.hdel(:experiment_start_times, experiment.name)
get '/'
\ No newline at end of file