spec/dashboard_spec.rb in split-0.6.5 vs spec/dashboard_spec.rb in split-0.6.6
- old
+ new
@@ -3,43 +3,47 @@
require 'split/dashboard'
describe Split::Dashboard do
include Rack::Test::Methods
- let(:link_color) {
- Split::Experiment.find_or_create('link_color', 'blue', 'red')
- }
+ def app
+ @app ||= Split::Dashboard
+ end
def link(color)
- Split::Alternative.new(color, 'link_color')
+ Split::Alternative.new(color, experiment.name)
end
- let(:red_link) {
- link("red")
+ let(:experiment) {
+ Split::Experiment.find_or_create('link_color', 'blue', 'red')
}
- let(:blue_link) {
- link("blue")
- }
+ 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 = link_color
+ it "should start experiment" do
+ Split.configuration.start_manually = true
+ experiment
+ get '/'
+ last_response.body.should include('Start')
+ post "/start/#{experiment.name}"
+ get '/'
+ last_response.body.should include('Reset Data')
+ end
+
+ it "should reset an experiment" do
red_link.participant_count = 5
blue_link.participant_count = 7
experiment.winner = 'blue'
- post '/reset/link_color'
+ post "/reset/#{experiment.name}"
last_response.should be_redirect
new_red_count = red_link.participant_count
new_blue_count = blue_link.participant_count
@@ -48,43 +52,38 @@
new_red_count.should eql(0)
experiment.winner.should be_nil
end
it "should delete an experiment" do
- experiment = link_color
- delete '/link_color'
+ delete "/#{experiment.name}"
last_response.should be_redirect
- Split::Experiment.find('link_color').should be_nil
+ Split::Experiment.find(experiment.name).should be_nil
end
it "should mark an alternative as the winner" do
- experiment = link_color
experiment.winner.should be_nil
+ post "/#{experiment.name}", :alternative => 'red'
- post '/link_color', :alternative => 'red'
-
last_response.should be_redirect
experiment.winner.name.should eql('red')
end
it "should display the start date" do
experiment_start_time = Time.parse('2011-07-07')
Time.stub(:now => experiment_start_time)
- experiment = link_color
+ experiment
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 = link_color
-
Split.redis.hdel(:experiment_start_times, experiment.name)
get '/'
last_response.body.should include('<small>Unknown</small>')
end
-end
\ No newline at end of file
+end