@@ -74,19 +74,39 @@ def link(color)
74
74
end
75
75
76
76
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
80
81
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
83
92
end
84
93
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
90
110
end
91
111
end
92
112
0 commit comments