@@ -74,19 +74,39 @@ def link(color)
7474 end
7575
7676 describe "force alternative" do
77- let! ( :user ) do
78- Split ::User . new ( @app , { experiment . name => 'red' } )
79- end
77+ context "initial version" do
78+ let! ( :user ) do
79+ Split ::User . new ( @app , { experiment . name => 'red' } )
80+ end
8081
81- before do
82- allow ( Split ::User ) . to receive ( :new ) . and_return ( user )
82+ before do
83+ allow ( Split ::User ) . to receive ( :new ) . and_return ( user )
84+ end
85+
86+ it "should set current user's alternative" do
87+ blue_link . participant_count = 7
88+ post "/force_alternative?experiment=#{ experiment . name } " , alternative : "blue"
89+ expect ( user [ experiment . key ] ) . to eq ( "blue" )
90+ expect ( blue_link . participant_count ) . to eq ( 8 )
91+ end
8392 end
8493
85- it "should set current user's alternative" do
86- blue_link . participant_count = 7
87- post "/force_alternative?experiment=#{ experiment . name } " , alternative : "blue"
88- expect ( user [ experiment . name ] ) . to eq ( "blue" )
89- expect ( blue_link . participant_count ) . to eq ( 8 )
94+ context "incremented version" do
95+ let! ( :user ) do
96+ experiment . increment_version
97+ Split ::User . new ( @app , { "#{ experiment . name } :#{ experiment . version } " => 'red' } )
98+ end
99+
100+ before do
101+ allow ( Split ::User ) . to receive ( :new ) . and_return ( user )
102+ end
103+
104+ it "should set current user's alternative" do
105+ blue_link . participant_count = 7
106+ post "/force_alternative?experiment=#{ experiment . name } " , alternative : "blue"
107+ expect ( user [ experiment . key ] ) . to eq ( "blue" )
108+ expect ( blue_link . participant_count ) . to eq ( 8 )
109+ end
90110 end
91111 end
92112
0 commit comments