@@ -37,26 +37,15 @@ import {
37
37
FEATURE_NOT_ENABLED_FOR_USER ,
38
38
INVALID_CLIENT_ENGINE ,
39
39
INVALID_DEFAULT_DECIDE_OPTIONS ,
40
- INVALID_OBJECT ,
41
40
NOT_ACTIVATING_USER ,
42
- USER_HAS_NO_FORCED_VARIATION ,
43
- USER_HAS_NO_FORCED_VARIATION_FOR_EXPERIMENT ,
44
- USER_MAPPED_TO_FORCED_VARIATION ,
45
- USER_RECEIVED_DEFAULT_VARIABLE_VALUE ,
46
41
VALID_USER_PROFILE_SERVICE ,
47
- VARIATION_REMOVED_FOR_USER ,
48
42
} from 'log_message' ;
49
43
import {
50
- EXPERIMENT_KEY_NOT_IN_DATAFILE ,
51
- INVALID_ATTRIBUTES ,
52
44
NOT_TRACKING_USER ,
53
45
EVENT_KEY_NOT_FOUND ,
54
46
INVALID_EXPERIMENT_KEY ,
55
- INVALID_INPUT_FORMAT ,
56
- NO_VARIATION_FOR_EXPERIMENT_KEY ,
57
- USER_NOT_IN_FORCED_VARIATION ,
58
- INSTANCE_CLOSED ,
59
47
ONREADY_TIMEOUT ,
48
+ SERVICE_STOPPED_BEFORE_RUNNING
60
49
} from 'error_message' ;
61
50
62
51
import {
@@ -77,6 +66,7 @@ import {
77
66
} from '../core/decision_service' ;
78
67
79
68
import { USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP } from '../core/bucketer' ;
69
+ import { resolvablePromise } from '../utils/promise/resolvablePromise' ;
80
70
81
71
var LOG_LEVEL = enums . LOG_LEVEL ;
82
72
var DECISION_SOURCES = enums . DECISION_SOURCES ;
@@ -9253,10 +9243,10 @@ describe('lib/optimizely', function() {
9253
9243
} ) ;
9254
9244
} ) ;
9255
9245
9256
- it ( 'returns a promise that fulfills with a successful result object ' , function ( ) {
9257
- return optlyInstance . close ( ) . then ( function ( result ) {
9258
- assert . deepEqual ( result , { success : true } ) ;
9259
- } ) ;
9246
+ it ( 'returns a promise that resolves ' , function ( ) {
9247
+ return optlyInstance . close ( ) . then ( ) . catch ( ( ) => {
9248
+ assert . fail ( ) ;
9249
+ } )
9260
9250
} ) ;
9261
9251
} ) ;
9262
9252
@@ -9291,13 +9281,11 @@ describe('lib/optimizely', function() {
9291
9281
} ) ;
9292
9282
} ) ;
9293
9283
9294
- it ( 'returns a promise that fulfills with an unsuccessful result object' , function ( ) {
9295
- return optlyInstance . close ( ) . then ( function ( result ) {
9296
- // assert.deepEqual(result, {
9297
- // success: false,
9298
- // reason: 'Error: Failed to stop',
9299
- // });
9300
- assert . isFalse ( result . success ) ;
9284
+ it ( 'returns a promise that rejects' , function ( ) {
9285
+ return optlyInstance . close ( ) . then ( ( ) => {
9286
+ assert . fail ( 'promnise should reject' )
9287
+ } ) . catch ( ( ) => {
9288
+
9301
9289
} ) ;
9302
9290
} ) ;
9303
9291
} ) ;
@@ -9465,7 +9453,7 @@ describe('lib/optimizely', function() {
9465
9453
var readyPromise = optlyInstance . onReady ( ) ;
9466
9454
clock . tick ( 300001 ) ;
9467
9455
return readyPromise . then ( ( ) => {
9468
- return Promise . reject ( new Error ( PROMISE_SHOULD_NOT_HAVE_RESOLVED ) ) ;
9456
+ return Promise . reject ( new Error ( ' PROMISE_SHOULD_NOT_HAVE_RESOLVED' ) ) ;
9469
9457
} , ( err ) => {
9470
9458
assert . equal ( err . baseMessage , ONREADY_TIMEOUT ) ;
9471
9459
assert . deepEqual ( err . params , [ 30000 ] ) ;
@@ -9487,18 +9475,25 @@ describe('lib/optimizely', function() {
9487
9475
eventProcessor,
9488
9476
} ) ;
9489
9477
var readyPromise = optlyInstance . onReady ( { timeout : 100 } ) ;
9478
+
9490
9479
optlyInstance . close ( ) ;
9480
+
9491
9481
return readyPromise . then ( ( ) => {
9492
- return Promise . reject ( new Error ( PROMISE_SHOULD_NOT_HAVE_RESOLVED ) ) ;
9482
+ return Promise . reject ( new Error ( ' PROMISE_SHOULD_NOT_HAVE_RESOLVED' ) ) ;
9493
9483
} , ( err ) => {
9494
- assert . equal ( err . baseMessage , INSTANCE_CLOSED ) ;
9484
+ assert . equal ( err . baseMessage , SERVICE_STOPPED_BEFORE_RUNNING ) ;
9495
9485
} ) ;
9496
9486
} ) ;
9497
9487
9498
9488
it ( 'can be called several times with different timeout values and the returned promises behave correctly' , function ( ) {
9489
+ const onRunning = resolvablePromise ( ) ;
9490
+
9499
9491
optlyInstance = new Optimizely ( {
9500
9492
clientEngine : 'node-sdk' ,
9501
- projectConfigManager : getMockProjectConfigManager ( ) ,
9493
+ projectConfigManager : getMockProjectConfigManager ( {
9494
+ onRunning : onRunning . promise ,
9495
+ } ) ,
9496
+
9502
9497
eventProcessor,
9503
9498
jsonSchemaValidator : jsonSchemaValidator ,
9504
9499
logger : createdLogger ,
@@ -9512,16 +9507,16 @@ describe('lib/optimizely', function() {
9512
9507
var readyPromise3 = optlyInstance . onReady ( { timeout : 300 } ) ;
9513
9508
clock . tick ( 101 ) ;
9514
9509
return readyPromise1
9515
- . then ( function ( ) {
9510
+ . catch ( function ( ) {
9516
9511
clock . tick ( 100 ) ;
9517
9512
return readyPromise2 ;
9518
9513
} )
9519
- . then ( function ( ) {
9514
+ . catch ( function ( ) {
9520
9515
// readyPromise3 has not resolved yet because only 201 ms have elapsed.
9521
9516
// Calling close on the instance should resolve readyPromise3
9522
- optlyInstance . close ( ) ;
9517
+ optlyInstance . close ( ) . catch ( ( ) => { } ) ;
9523
9518
return readyPromise3 ;
9524
- } ) ;
9519
+ } ) . catch ( ( ) => { } ) ;
9525
9520
} ) ;
9526
9521
9527
9522
it ( 'clears the timeout when the project config manager ready promise fulfills' , function ( ) {
0 commit comments