Skip to content

Commit 7808c73

Browse files
authored
[FSSDK-8475] ODP Integration for Optimizely Client and User Context (Browser) (#799)
1 parent 0116d75 commit 7808c73

29 files changed

+1822
-1145
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@ dist/
1010
# user-specific ignores ought to be defined in user's `core.excludesfile`
1111
.idea/*
1212
.DS_STORE
13+
14+
browserstack.err
15+
local.log

packages/optimizely-sdk/jest.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ module.exports = {
88
"uuid": require.resolve('uuid'),
99
},
1010
"testPathIgnorePatterns" : [
11-
"tests/testUtils.ts"
11+
"tests/testUtils.ts",
12+
"dist"
1213
],
1314
"moduleFileExtensions": [
1415
"ts",

packages/optimizely-sdk/lib/core/decision_service/index.tests.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ describe('lib/core/decision_service', function() {
6868
describe('#getVariation', function() {
6969
it('should return the correct variation for the given experiment key and user ID for a running experiment', function() {
7070
user = new OptimizelyUserContext({
71+
shouldIdentifyUser: false,
7172
optimizely: {},
7273
userId: 'tester'
7374
});
@@ -86,6 +87,7 @@ describe('lib/core/decision_service', function() {
8687

8788
it('should return the whitelisted variation if the user is whitelisted', function() {
8889
user = new OptimizelyUserContext({
90+
shouldIdentifyUser: false,
8991
optimizely: {},
9092
userId: 'user2'
9193
});
@@ -108,6 +110,7 @@ describe('lib/core/decision_service', function() {
108110

109111
it('should return null if the user does not meet audience conditions', function() {
110112
user = new OptimizelyUserContext({
113+
shouldIdentifyUser: false,
111114
optimizely: {},
112115
userId: 'user3'
113116
});
@@ -136,6 +139,7 @@ describe('lib/core/decision_service', function() {
136139

137140
it('should return null if the experiment is not running', function() {
138141
user = new OptimizelyUserContext({
142+
shouldIdentifyUser: false,
139143
optimizely: {},
140144
userId: 'user1'
141145
});
@@ -165,6 +169,7 @@ describe('lib/core/decision_service', function() {
165169
},
166170
};
167171
user = new OptimizelyUserContext({
172+
shouldIdentifyUser: false,
168173
optimizely: {},
169174
userId: 'decision_service_user',
170175
attributes,
@@ -222,6 +227,7 @@ describe('lib/core/decision_service', function() {
222227
});
223228
experiment = configObj.experimentIdMap['111127'];
224229
user = new OptimizelyUserContext({
230+
shouldIdentifyUser: false,
225231
optimizely: {},
226232
userId: 'decision_service_user',
227233
});
@@ -250,6 +256,7 @@ describe('lib/core/decision_service', function() {
250256
});
251257
experiment = configObj.experimentIdMap['111127'];
252258
user = new OptimizelyUserContext({
259+
shouldIdentifyUser: false,
253260
optimizely: {},
254261
userId: 'decision_service_user',
255262
});
@@ -276,6 +283,7 @@ describe('lib/core/decision_service', function() {
276283
userProfileLookupStub.returns(null);
277284
experiment = configObj.experimentIdMap['111127'];
278285
user = new OptimizelyUserContext({
286+
shouldIdentifyUser: false,
279287
optimizely: {},
280288
userId: 'decision_service_user',
281289
});
@@ -308,6 +316,7 @@ describe('lib/core/decision_service', function() {
308316
});
309317
experiment = configObj.experimentIdMap['111127'];
310318
user = new OptimizelyUserContext({
319+
shouldIdentifyUser: false,
311320
optimizely: {},
312321
userId: 'decision_service_user',
313322
});
@@ -343,6 +352,7 @@ describe('lib/core/decision_service', function() {
343352
experiment_bucket_map: {}, // no decisions for user
344353
});
345354
user = new OptimizelyUserContext({
355+
shouldIdentifyUser: false,
346356
optimizely: {},
347357
userId: 'decision_service_user',
348358
});
@@ -378,6 +388,7 @@ describe('lib/core/decision_service', function() {
378388
userProfileLookupStub.throws(new Error('I am an error'));
379389
experiment = configObj.experimentIdMap['111127'];
380390
user = new OptimizelyUserContext({
391+
shouldIdentifyUser: false,
381392
optimizely: {},
382393
userId: 'decision_service_user',
383394
});
@@ -403,6 +414,7 @@ describe('lib/core/decision_service', function() {
403414
userProfileSaveStub.throws(new Error('I am an error'));
404415
experiment = configObj.experimentIdMap['111127'];
405416
user = new OptimizelyUserContext({
417+
shouldIdentifyUser: false,
406418
optimizely: {},
407419
userId: 'decision_service_user',
408420
});
@@ -456,6 +468,7 @@ describe('lib/core/decision_service', function() {
456468
experiment = configObj.experimentIdMap['111127'];
457469

458470
user = new OptimizelyUserContext({
471+
shouldIdentifyUser: false,
459472
optimizely: {},
460473
userId: 'decision_service_user',
461474
attributes,
@@ -500,6 +513,7 @@ describe('lib/core/decision_service', function() {
500513
};
501514

502515
user = new OptimizelyUserContext({
516+
shouldIdentifyUser: false,
503517
optimizely: {},
504518
userId: 'decision_service_user',
505519
attributes,
@@ -544,6 +558,7 @@ describe('lib/core/decision_service', function() {
544558
};
545559

546560
user = new OptimizelyUserContext({
561+
shouldIdentifyUser: false,
547562
optimizely: {},
548563
userId: 'decision_service_user',
549564
attributes,
@@ -579,6 +594,7 @@ describe('lib/core/decision_service', function() {
579594
};
580595

581596
user = new OptimizelyUserContext({
597+
shouldIdentifyUser: false,
582598
optimizely: {},
583599
userId: 'decision_service_user',
584600
attributes,
@@ -1146,6 +1162,7 @@ describe('lib/core/decision_service', function() {
11461162
},
11471163
});
11481164
user = new OptimizelyUserContext({
1165+
shouldIdentifyUser: false,
11491166
optimizely: {},
11501167
userId: 'test_user',
11511168
attributes: userAttributesWithBucketingId,
@@ -1248,6 +1265,7 @@ describe('lib/core/decision_service', function() {
12481265
var experiment;
12491266
beforeEach(function() {
12501267
user = new OptimizelyUserContext({
1268+
shouldIdentifyUser: false,
12511269
optimizely: {},
12521270
userId: 'user1',
12531271
attributes: {
@@ -1489,6 +1507,7 @@ describe('lib/core/decision_service', function() {
14891507
var getVariationStub;
14901508
beforeEach(function() {
14911509
user = new OptimizelyUserContext({
1510+
shouldIdentifyUser: false,
14921511
optimizely: {},
14931512
userId: 'user1',
14941513
});
@@ -1523,6 +1542,7 @@ describe('lib/core/decision_service', function() {
15231542
var user;
15241543
beforeEach(function() {
15251544
user = new OptimizelyUserContext({
1545+
shouldIdentifyUser: false,
15261546
optimizely: {},
15271547
userId: 'user1',
15281548
});
@@ -1583,6 +1603,7 @@ describe('lib/core/decision_service', function() {
15831603
var user;
15841604
beforeEach(function() {
15851605
user = new OptimizelyUserContext({
1606+
shouldIdentifyUser: false,
15861607
optimizely: {},
15871608
userId: 'user1',
15881609
});
@@ -1642,6 +1663,7 @@ describe('lib/core/decision_service', function() {
16421663

16431664
it('returns a decision with a variation and experiment from the audience targeting rule', function() {
16441665
user = new OptimizelyUserContext({
1666+
shouldIdentifyUser: false,
16451667
optimizely: {},
16461668
userId: 'user1',
16471669
attributes: { test_attribute: 'test_value' },
@@ -1778,6 +1800,7 @@ describe('lib/core/decision_service', function() {
17781800

17791801
it('returns a decision with a variation and experiment from the everyone else targeting rule', function() {
17801802
user = new OptimizelyUserContext({
1803+
shouldIdentifyUser: false,
17811804
optimizely: {},
17821805
userId: 'user1',
17831806
attributes: {},
@@ -1913,6 +1936,7 @@ describe('lib/core/decision_service', function() {
19131936

19141937
it('returns a decision with no variation, no experiment and source rollout', function() {
19151938
user = new OptimizelyUserContext({
1939+
shouldIdentifyUser: false,
19161940
optimizely: {},
19171941
userId: 'user1',
19181942
});
@@ -1960,6 +1984,7 @@ describe('lib/core/decision_service', function() {
19601984

19611985
it('returns a decision with a variation and experiment from the everyone else targeting rule', function() {
19621986
user = new OptimizelyUserContext({
1987+
shouldIdentifyUser: false,
19631988
optimizely: {},
19641989
userId: 'user1',
19651990
attributes: { test_attribute: 'test_value' }
@@ -2109,6 +2134,7 @@ describe('lib/core/decision_service', function() {
21092134
// No attributes passed to the user context, so user is not in the audience for the experiment
21102135
// It should fall through to the rollout
21112136
user = new OptimizelyUserContext({
2137+
shouldIdentifyUser: false,
21122138
optimizely: {},
21132139
userId: 'user1'
21142140
});
@@ -2203,6 +2229,7 @@ describe('lib/core/decision_service', function() {
22032229

22042230
it('returns a decision with no variation, no experiment and source rollout', function() {
22052231
user = new OptimizelyUserContext({
2232+
shouldIdentifyUser: false,
22062233
optimizely: {},
22072234
userId: 'user1'
22082235
});
@@ -2239,6 +2266,7 @@ describe('lib/core/decision_service', function() {
22392266
it('returns a decision with a variation in mutex group bucket less than 2500', function() {
22402267
generateBucketValueStub.returns(2400);
22412268
user = new OptimizelyUserContext({
2269+
shouldIdentifyUser: false,
22422270
optimizely: {},
22432271
userId: 'user1',
22442272
attributes: { experiment_attr: 'group_experiment' }
@@ -2268,6 +2296,7 @@ describe('lib/core/decision_service', function() {
22682296
it('returns a decision with a variation in mutex group bucket range 2500 to 5000', function() {
22692297
generateBucketValueStub.returns(4000);
22702298
user = new OptimizelyUserContext({
2299+
shouldIdentifyUser: false,
22712300
optimizely: {},
22722301
userId: 'user1',
22732302
attributes: { experiment_attr: 'group_experiment' }
@@ -2297,6 +2326,7 @@ describe('lib/core/decision_service', function() {
22972326
it('returns a decision with a variation in mutex group bucket range 5000 to 7500', function() {
22982327
generateBucketValueStub.returns(6500);
22992328
user = new OptimizelyUserContext({
2329+
shouldIdentifyUser: false,
23002330
optimizely: {},
23012331
userId: 'user1',
23022332
attributes: { experiment_attr: 'group_experiment' }
@@ -2326,6 +2356,7 @@ describe('lib/core/decision_service', function() {
23262356
it('returns a decision with variation and source rollout in mutex group bucket greater than 7500', function() {
23272357
generateBucketValueStub.returns(8000);
23282358
user = new OptimizelyUserContext({
2359+
shouldIdentifyUser: false,
23292360
optimizely: {},
23302361
userId: 'user1',
23312362
attributes: { experiment_attr: 'group_experiment' }
@@ -2373,6 +2404,7 @@ describe('lib/core/decision_service', function() {
23732404
it('returns a decision with variation for rollout in mutex group with audience mismatch', function() {
23742405
generateBucketValueStub.returns(2400);
23752406
user = new OptimizelyUserContext({
2407+
shouldIdentifyUser: false,
23762408
optimizely: {},
23772409
userId: 'user1',
23782410
attributes: { experiment_attr: 'group_experiment_invalid' }
@@ -2429,6 +2461,7 @@ describe('lib/core/decision_service', function() {
24292461
it('returns a decision with a variation in mutex group bucket less than 2500', function() {
24302462
generateBucketValueStub.returns(2400);
24312463
user = new OptimizelyUserContext({
2464+
shouldIdentifyUser: false,
24322465
optimizely: {},
24332466
userId: 'user1',
24342467
attributes: { experiment_attr: 'group_experiment' }
@@ -2459,6 +2492,7 @@ describe('lib/core/decision_service', function() {
24592492
it('returns a decision with a variation in mutex group bucket range 2500 to 5000', function() {
24602493
generateBucketValueStub.returns(4000);
24612494
user = new OptimizelyUserContext({
2495+
shouldIdentifyUser: false,
24622496
optimizely: {},
24632497
userId: 'user1',
24642498
attributes: { experiment_attr: 'group_experiment' }
@@ -2489,6 +2523,7 @@ describe('lib/core/decision_service', function() {
24892523
it('returns a decision with a variation in mutex group bucket range 5000 to 7500', function() {
24902524
generateBucketValueStub.returns(6500);
24912525
user = new OptimizelyUserContext({
2526+
shouldIdentifyUser: false,
24922527
optimizely: {},
24932528
userId: 'user1',
24942529
attributes: { experiment_attr: 'group_experiment' }
@@ -2519,6 +2554,7 @@ describe('lib/core/decision_service', function() {
25192554
it('returns a decision with variation and source rollout in mutex group bucket greater than 7500', function() {
25202555
generateBucketValueStub.returns(8000);
25212556
user = new OptimizelyUserContext({
2557+
shouldIdentifyUser: false,
25222558
optimizely: {},
25232559
userId: 'user1',
25242560
attributes: { experiment_attr: 'group_experiment' }
@@ -2566,6 +2602,7 @@ describe('lib/core/decision_service', function() {
25662602
it('returns a decision with variation for rollout in mutex group bucket range 2500 to 5000', function() {
25672603
generateBucketValueStub.returns(4000);
25682604
user = new OptimizelyUserContext({
2605+
shouldIdentifyUser: false,
25692606
optimizely: {},
25702607
userId: 'user1',
25712608
attributes: { experiment_attr: 'group_experiment_invalid' }
@@ -2634,6 +2671,7 @@ describe('lib/core/decision_service', function() {
26342671

26352672
it('should call buildBucketerParams with user Id when bucketing Id is not provided in the attributes', function() {
26362673
user = new OptimizelyUserContext({
2674+
shouldIdentifyUser: false,
26372675
optimizely: {},
26382676
userId: 'testUser',
26392677
attributes: { test_attribute: 'test_value' }
@@ -2651,6 +2689,7 @@ describe('lib/core/decision_service', function() {
26512689
$opt_bucketing_id: 'abcdefg',
26522690
};
26532691
user = new OptimizelyUserContext({
2692+
shouldIdentifyUser: false,
26542693
optimizely: {},
26552694
userId: 'testUser',
26562695
attributes,

0 commit comments

Comments
 (0)