Skip to content

Commit aab986a

Browse files
committed
converted audience evaluator and decision service
1 parent e76a20d commit aab986a

File tree

4 files changed

+66
-69
lines changed

4 files changed

+66
-69
lines changed

packages/optimizely-sdk/lib/core/audience_evaluator/index.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright 2016, 2018-2019 Optimizely
2+
* Copyright 2016, 2018-2020 Optimizely
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -13,13 +13,13 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
var conditionTreeEvaluator = require('../condition_tree_evaluator');
17-
var customAttributeConditionEvaluator = require('../custom_attribute_condition_evaluator');
18-
var enums = require('../../utils/enums');
19-
var fns = require('../../utils/fns');
20-
var sprintf = require('@optimizely/js-sdk-utils').sprintf;
21-
var logging = require('@optimizely/js-sdk-logging');
22-
var logger = logging.getLogger();
16+
import conditionTreeEvaluator from '../condition_tree_evaluator';
17+
import customAttributeConditionEvaluator from '../custom_attribute_condition_evaluator';
18+
import enums from '../../utils/enums';
19+
import fns from '../../utils/fns';
20+
import { sprintf } from '@optimizely/js-sdk-utils';
21+
import { getLogger } from '@optimizely/js-sdk-logging';
22+
var logger = getLogger();
2323

2424
var ERROR_MESSAGES = enums.ERROR_MESSAGES;
2525
var LOG_LEVEL = enums.LOG_LEVEL;
@@ -108,4 +108,4 @@ AudienceEvaluator.prototype.evaluateConditionWithUserAttributes = function(userA
108108
return null;
109109
};
110110

111-
module.exports = AudienceEvaluator;
111+
export default AudienceEvaluator;

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

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright 2016, 2018-2019 Optimizely
2+
* Copyright 2016, 2018-2020 Optimizely
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -13,16 +13,15 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
var AudienceEvaluator = require('./');
17-
var chai = require('chai');
18-
var conditionTreeEvaluator = require('../condition_tree_evaluator');
19-
var customAttributeConditionEvaluator = require('../custom_attribute_condition_evaluator');
20-
var sinon = require('sinon');
16+
import AudienceEvaluator from './index';
17+
import chai from 'chai';
18+
import conditionTreeEvaluator from '../condition_tree_evaluator';
19+
import customAttributeConditionEvaluator from '../custom_attribute_condition_evaluator';
20+
import sinon from 'sinon';
21+
import { getLogger } from '@optimizely/js-sdk-logging';
22+
2123
var assert = chai.assert;
22-
var logging = require('@optimizely/js-sdk-logging');
23-
var mockLogger = logging.getLogger();
24-
var enums = require('../../utils/enums');
25-
var LOG_LEVEL = enums.LOG_LEVEL;
24+
var mockLogger = getLogger();
2625

2726
var chromeUserAudience = {
2827
conditions: [

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

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/****************************************************************************
2-
* Copyright 2017-2019, Optimizely, Inc. and contributors *
2+
* Copyright 2017-2019, 2020 Optimizely, Inc. and contributors *
33
* *
44
* Licensed under the Apache License, Version 2.0 (the "License"); *
55
* you may not use this file except in compliance with the License. *
@@ -13,15 +13,13 @@
1313
* See the License for the specific language governing permissions and *
1414
* limitations under the License. *
1515
***************************************************************************/
16-
17-
var AudienceEvaluator = require('../audience_evaluator');
18-
var bucketer = require('../bucketer');
19-
var enums = require('../../utils/enums');
20-
var fns = require('../../utils/fns');
21-
var projectConfig = require('../project_config');
22-
var stringValidator = require('../../utils/string_value_validator');
23-
24-
var sprintf = require('@optimizely/js-sdk-utils').sprintf;
16+
import AudienceEvaluator from '../audience_evaluator';
17+
import bucketer from '../bucketer';
18+
import enums from '../../utils/enums';
19+
import fns from '../../utils/fns';
20+
import projectConfig from '../project_config';
21+
import stringValidator from '../../utils/string_value_validator';
22+
import { sprintf } from'@optimizely/js-sdk-utils';
2523

2624
var MODULE_NAME = 'DECISION_SERVICE';
2725
var ERROR_MESSAGES = enums.ERROR_MESSAGES;
@@ -718,15 +716,17 @@ DecisionService.prototype.setForcedVariation = function(configObj, experimentKey
718716
}
719717
};
720718

721-
module.exports = {
722-
/**
723-
* Creates an instance of the DecisionService.
724-
* @param {Object} options Configuration options
725-
* @param {Object} options.userProfileService
726-
* @param {Object} options.logger
727-
* @return {Object} An instance of the DecisionService
728-
*/
729-
createDecisionService: function(options) {
730-
return new DecisionService(options);
731-
},
732-
};
719+
/**
720+
* Creates an instance of the DecisionService.
721+
* @param {Object} options Configuration options
722+
* @param {Object} options.userProfileService
723+
* @param {Object} options.logger
724+
* @return {Object} An instance of the DecisionService
725+
*/
726+
export var createDecisionService = function(options) {
727+
return new DecisionService(options);
728+
}
729+
730+
export default {
731+
createDecisionService,
732+
}

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

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/****************************************************************************
2-
* Copyright 2017-2020, Optimizely, Inc. and contributors *
2+
* Copyright 2017-2019, 2020 Optimizely, Inc. and contributors *
33
* *
44
* Licensed under the Apache License, Version 2.0 (the "License"); *
55
* you may not use this file except in compliance with the License. *
@@ -13,25 +13,23 @@
1313
* See the License for the specific language governing permissions and *
1414
* limitations under the License. *
1515
***************************************************************************/
16-
17-
var Optimizely = require('../../optimizely').default;
18-
var eventBuilder = require('../../core/event_builder/index.js');
19-
var eventDispatcher = require('../../plugins/event_dispatcher/index.node');
20-
var errorHandler = require('../../plugins/error_handler');
21-
var bucketer = require('../bucketer');
22-
var DecisionService = require('./');
23-
var enums = require('../../utils/enums');
24-
var cloneDeep = require('lodash/cloneDeep');
25-
var logger = require('../../plugins/logger');
26-
var projectConfig = require('../project_config');
27-
var sprintf = require('@optimizely/js-sdk-utils').sprintf;
28-
var testData = require('../../tests/test_data').getTestProjectConfig();
29-
var testDataWithFeatures = require('../../tests/test_data').getTestProjectConfigWithFeatures();
30-
var jsonSchemaValidator = require('../../utils/json_schema_validator');
31-
var AudienceEvaluator = require('../audience_evaluator');
32-
33-
var chai = require('chai');
34-
var sinon = require('sinon');
16+
import Optimizely from '../../optimizely';
17+
import eventBuilder from '../../core/event_builder/index.js';
18+
import eventDispatcher from '../../plugins/event_dispatcher/index.node';
19+
import errorHandler from '../../plugins/error_handler';
20+
import bucketer from '../bucketer';
21+
import DecisionService from './';
22+
import enums from '../../utils/enums';
23+
import cloneDeep from 'lodash/cloneDeep';
24+
import logger from '../../plugins/logger';
25+
import projectConfig from '../project_config';
26+
import { sprintf } from '@optimizely/js-sdk-utils';
27+
import { getTestProjectConfig, getTestProjectConfigWithFeatures } from '../../tests/test_data';
28+
import jsonSchemaValidator from '../../utils/json_schema_validator';
29+
import AudienceEvaluator from '../audience_evaluator';
30+
31+
import chai from 'chai';
32+
import sinon from 'sinon';
3533
var assert = chai.assert;
3634

3735
var LOG_LEVEL = enums.LOG_LEVEL;
@@ -40,7 +38,7 @@ var DECISION_SOURCES = enums.DECISION_SOURCES;
4038

4139
describe('lib/core/decision_service', function() {
4240
describe('APIs', function() {
43-
var configObj = projectConfig.createProjectConfig(cloneDeep(testData));
41+
var configObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfig()));
4442
var decisionServiceInstance;
4543
var mockLogger = logger.createLogger({ logLevel: LOG_LEVEL.INFO });
4644
var bucketerStub;
@@ -860,7 +858,7 @@ describe('lib/core/decision_service', function() {
860858
'control'
861859
);
862860
assert.strictEqual(didSetVariation, true);
863-
var newDatafile = cloneDeep(testData);
861+
var newDatafile = cloneDeep(getTestProjectConfig());
864862
// Remove 'control' variation from variations, traffic allocation, and datafile forcedVariations.
865863
newDatafile.experiments[0].variations = [
866864
{
@@ -892,7 +890,7 @@ describe('lib/core/decision_service', function() {
892890
'control'
893891
);
894892
assert.strictEqual(didSetVariation, true);
895-
var newConfigObj = projectConfig.createProjectConfig(cloneDeep(testDataWithFeatures));
893+
var newConfigObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfigWithFeatures()));
896894
var forcedVar = decisionServiceInstance.getForcedVariation(newConfigObj, 'testExperiment', 'user1');
897895
assert.strictEqual(forcedVar, null);
898896
});
@@ -917,7 +915,7 @@ describe('lib/core/decision_service', function() {
917915

918916
// TODO: Move tests that test methods of Optimizely to lib/optimizely/index.tests.js
919917
describe('when a bucketingID is provided', function() {
920-
var configObj = projectConfig.createProjectConfig(cloneDeep(testData));
918+
var configObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfig()));
921919
var createdLogger = logger.createLogger({
922920
logLevel: LOG_LEVEL.DEBUG,
923921
logToConsole: false,
@@ -926,7 +924,7 @@ describe('lib/core/decision_service', function() {
926924
beforeEach(function() {
927925
optlyInstance = new Optimizely({
928926
clientEngine: 'node-sdk',
929-
datafile: cloneDeep(testData),
927+
datafile: cloneDeep(getTestProjectConfig()),
930928
jsonSchemaValidator: jsonSchemaValidator,
931929
isValidInstance: true,
932930
logger: createdLogger,
@@ -1050,7 +1048,7 @@ describe('lib/core/decision_service', function() {
10501048

10511049
beforeEach(function() {
10521050
sinon.stub(mockLogger, 'log');
1053-
configObj = projectConfig.createProjectConfig(cloneDeep(testData));
1051+
configObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfig()));
10541052
decisionService = DecisionService.createDecisionService({
10551053
logger: mockLogger,
10561054
});
@@ -1088,7 +1086,7 @@ describe('lib/core/decision_service', function() {
10881086
var sandbox;
10891087
var mockLogger = logger.createLogger({ logLevel: LOG_LEVEL.INFO });
10901088
beforeEach(function() {
1091-
configObj = projectConfig.createProjectConfig(cloneDeep(testDataWithFeatures));
1089+
configObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfigWithFeatures()));
10921090
sandbox = sinon.sandbox.create();
10931091
sandbox.stub(mockLogger, 'log');
10941092
decisionServiceInstance = DecisionService.createDecisionService({
@@ -1978,7 +1976,7 @@ describe('lib/core/decision_service', function() {
19781976
var __buildBucketerParamsSpy;
19791977

19801978
beforeEach(function() {
1981-
configObj = projectConfig.createProjectConfig(cloneDeep(testDataWithFeatures));
1979+
configObj = projectConfig.createProjectConfig(cloneDeep(getTestProjectConfigWithFeatures()));
19821980
feature = configObj.featureKeyMap.test_feature;
19831981
decisionService = DecisionService.createDecisionService({
19841982
logger: logger.createLogger({ logLevel: LOG_LEVEL.INFO }),

0 commit comments

Comments
 (0)