@@ -112,6 +112,155 @@ describe('javascript-sdk', function() {
112
112
done ( ) ;
113
113
} ) ;
114
114
115
+ it ( 'should be able to set and get a forced variation' , function ( done ) {
116
+ var optlyInstance = optimizelyFactory . createInstance ( {
117
+ datafile : testData . getTestProjectConfig ( ) ,
118
+ errorHandler : fakeErrorHandler ,
119
+ eventDispatcher : eventDispatcher ,
120
+ logger : fakeLogger ,
121
+ } ) ;
122
+
123
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
124
+ assert . strictEqual ( didSetVariation , true ) ;
125
+
126
+ var variation = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
127
+ assert . strictEqual ( variation , 'control' )
128
+ done ( ) ;
129
+ } ) ;
130
+
131
+ it ( 'should be able to set and unset a forced variation' , function ( done ) {
132
+ var optlyInstance = optimizelyFactory . createInstance ( {
133
+ datafile : testData . getTestProjectConfig ( ) ,
134
+ errorHandler : fakeErrorHandler ,
135
+ eventDispatcher : eventDispatcher ,
136
+ logger : fakeLogger ,
137
+ } ) ;
138
+
139
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
140
+ assert . strictEqual ( didSetVariation , true ) ;
141
+
142
+ var variation = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
143
+ assert . strictEqual ( variation , 'control' )
144
+
145
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , null ) ;
146
+ assert . strictEqual ( didSetVariation2 , true ) ;
147
+
148
+ var variation2 = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
149
+ assert . strictEqual ( variation2 , null )
150
+ done ( ) ;
151
+ } ) ;
152
+
153
+ it ( 'should be able to set multiple experiments for one user' , function ( done ) {
154
+ var optlyInstance = optimizelyFactory . createInstance ( {
155
+ datafile : testData . getTestProjectConfig ( ) ,
156
+ errorHandler : fakeErrorHandler ,
157
+ eventDispatcher : eventDispatcher ,
158
+ logger : fakeLogger ,
159
+ } ) ;
160
+
161
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
162
+ assert . strictEqual ( didSetVariation , true ) ;
163
+
164
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperimentLaunched' , 'testUser' , 'controlLaunched' ) ;
165
+ assert . strictEqual ( didSetVariation2 , true ) ;
166
+
167
+
168
+ var variation = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
169
+ assert . strictEqual ( variation , 'control' )
170
+
171
+ var variation2 = optlyInstance . getForcedVariation ( 'testExperimentLaunched' , 'testUser' ) ;
172
+ assert . strictEqual ( variation2 , 'controlLaunched' )
173
+ done ( ) ;
174
+ } ) ;
175
+
176
+ it ( 'should be able to set multiple experiments for one user, and unset one' , function ( done ) {
177
+ var optlyInstance = optimizelyFactory . createInstance ( {
178
+ datafile : testData . getTestProjectConfig ( ) ,
179
+ errorHandler : fakeErrorHandler ,
180
+ eventDispatcher : eventDispatcher ,
181
+ logger : fakeLogger ,
182
+ } ) ;
183
+
184
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
185
+ assert . strictEqual ( didSetVariation , true ) ;
186
+
187
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperimentLaunched' , 'testUser' , 'controlLaunched' ) ;
188
+ assert . strictEqual ( didSetVariation2 , true ) ;
189
+
190
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperimentLaunched' , 'testUser' , null ) ;
191
+ assert . strictEqual ( didSetVariation2 , true ) ;
192
+
193
+ var variation = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
194
+ assert . strictEqual ( variation , 'control' )
195
+
196
+ var variation2 = optlyInstance . getForcedVariation ( 'testExperimentLaunched' , 'testUser' ) ;
197
+ assert . strictEqual ( variation2 , null )
198
+ done ( ) ;
199
+ } ) ;
200
+
201
+ it ( 'should be able to set multiple experiments for one user, and reset one' , function ( done ) {
202
+ var optlyInstance = optimizelyFactory . createInstance ( {
203
+ datafile : testData . getTestProjectConfig ( ) ,
204
+ errorHandler : fakeErrorHandler ,
205
+ eventDispatcher : eventDispatcher ,
206
+ logger : fakeLogger ,
207
+ } ) ;
208
+
209
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
210
+ assert . strictEqual ( didSetVariation , true ) ;
211
+
212
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperimentLaunched' , 'testUser' , 'controlLaunched' ) ;
213
+ assert . strictEqual ( didSetVariation2 , true ) ;
214
+
215
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperimentLaunched' , 'testUser' , 'variationLaunched' ) ;
216
+ assert . strictEqual ( didSetVariation2 , true ) ;
217
+
218
+ var variation = optlyInstance . getForcedVariation ( 'testExperiment' , 'testUser' ) ;
219
+ assert . strictEqual ( variation , 'control' )
220
+
221
+ var variation2 = optlyInstance . getForcedVariation ( 'testExperimentLaunched' , 'testUser' ) ;
222
+ assert . strictEqual ( variation2 , 'variationLaunched' )
223
+ done ( ) ;
224
+ } ) ;
225
+
226
+ it ( 'should override bucketing when setForcedVariation is called' , function ( done ) {
227
+ var optlyInstance = optimizelyFactory . createInstance ( {
228
+ datafile : testData . getTestProjectConfig ( ) ,
229
+ errorHandler : fakeErrorHandler ,
230
+ eventDispatcher : eventDispatcher ,
231
+ logger : fakeLogger ,
232
+ } ) ;
233
+
234
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'control' ) ;
235
+ assert . strictEqual ( didSetVariation , true ) ;
236
+
237
+ var variation = optlyInstance . getVariation ( 'testExperiment' , 'testUser' ) ;
238
+ assert . strictEqual ( variation , 'control' )
239
+
240
+ var didSetVariation2 = optlyInstance . setForcedVariation ( 'testExperiment' , 'testUser' , 'variation' ) ;
241
+ assert . strictEqual ( didSetVariation2 , true ) ;
242
+
243
+ var variation = optlyInstance . getVariation ( 'testExperiment' , 'testUser' ) ;
244
+ assert . strictEqual ( variation , 'variation' )
245
+ done ( ) ;
246
+ } ) ;
247
+
248
+ it ( 'should override bucketing when setForcedVariation is called for a not running experiment' , function ( done ) {
249
+ var optlyInstance = optimizelyFactory . createInstance ( {
250
+ datafile : testData . getTestProjectConfig ( ) ,
251
+ errorHandler : fakeErrorHandler ,
252
+ eventDispatcher : eventDispatcher ,
253
+ logger : fakeLogger ,
254
+ } ) ;
255
+
256
+ var didSetVariation = optlyInstance . setForcedVariation ( 'testExperimentNotRunning' , 'testUser' , 'controlNotRunning' ) ;
257
+ assert . strictEqual ( didSetVariation , true ) ;
258
+
259
+ var variation = optlyInstance . getVariation ( 'testExperimentNotRunning' , 'testUser' ) ;
260
+ assert . strictEqual ( variation , null )
261
+
262
+ done ( ) ;
263
+ } ) ;
115
264
} ) ;
116
265
} ) ;
117
266
} ) ;
0 commit comments