Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit cafd45c

Browse files
authored
feat: Updated lint configuration for optimizely-sdk package (optimizely#378)
Summary: - In the optimizely-sdk package, adds a new eslint configuration based on the current recommended rule set - Fixes errors and warnings from this updated rule set - Add a stage in Travis configuration to enforce lint rules Test plan: Existing tests
1 parent d48ede0 commit cafd45c

File tree

16 files changed

+544
-414
lines changed

16 files changed

+544
-414
lines changed

.eslintrc.js

Lines changed: 0 additions & 48 deletions
This file was deleted.

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,17 @@ after_success: npm run coveralls
2626

2727
# Integration tests need to run first to reset the PR build status to pending
2828
stages:
29+
- 'Lint'
2930
- 'Integration tests'
3031
- 'Benchmarking tests'
3132
- 'Cross-browser and umd unit tests'
3233
- 'Test'
3334

3435
jobs:
3536
include:
37+
- stage: 'Lint'
38+
node_js: '12'
39+
script: npm run lint
3640
- &integrationtest
3741
stage: 'Integration tests'
3842
merge_mode: replace

packages/optimizely-sdk/.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.tests.js
2+
*.umdtests.js
3+
test_data.js

packages/optimizely-sdk/.eslintrc.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module.exports = {
2+
env: {
3+
browser: true,
4+
commonjs: true,
5+
node: true,
6+
},
7+
extends: 'eslint:recommended',
8+
globals: {
9+
Atomics: 'readonly',
10+
SharedArrayBuffer: 'readonly',
11+
Promise: 'readonly',
12+
},
13+
parserOptions: {
14+
ecmaVersion: 5,
15+
},
16+
rules: {
17+
'no-prototype-builtins': 'off',
18+
},
19+
};

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ var LOG_LEVEL = enums.LOG_LEVEL;
2222
var LOG_MESSAGES = enums.LOG_MESSAGES;
2323
var MODULE_NAME = 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR';
2424

25-
var CUSTOM_ATTRIBUTE_CONDITION_TYPE = 'custom_attribute';
26-
2725
var EXACT_MATCH_TYPE = 'exact';
2826
var EXISTS_MATCH_TYPE = 'exists';
2927
var GREATER_THAN_MATCH_TYPE = 'gt';

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,24 @@ DecisionService.prototype.getVariation = function(configObj, experimentKey, user
6767
// by default, the bucketing ID should be the user ID
6868
var bucketingId = this._getBucketingId(userId, attributes);
6969

70-
if (!this.__checkIfExperimentIsActive(configObj, experimentKey, userId)) {
70+
if (!this.__checkIfExperimentIsActive(configObj, experimentKey)) {
7171
return null;
7272
}
7373
var experiment = configObj.experimentKeyMap[experimentKey];
7474
var forcedVariationKey = this.getForcedVariation(configObj, experimentKey, userId);
75-
if (!!forcedVariationKey) {
75+
if (forcedVariationKey) {
7676
return forcedVariationKey;
7777
}
7878

7979
var variation = this.__getWhitelistedVariation(experiment, userId);
80-
if (!!variation) {
80+
if (variation) {
8181
return variation.key;
8282
}
8383

8484
// check for sticky bucketing
8585
var experimentBucketMap = this.__resolveExperimentBucketMap(userId, attributes);
8686
variation = this.__getStoredVariation(configObj, experiment, userId, experimentBucketMap);
87-
if (!!variation) {
87+
if (variation) {
8888
this.logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.RETURNING_STORED_VARIATION, MODULE_NAME, variation.key, experimentKey, userId));
8989
return variation.key;
9090
}
@@ -127,7 +127,7 @@ DecisionService.prototype.__resolveExperimentBucketMap = function(userId, attrib
127127
* @param {string} userId ID of user
128128
* @return {boolean} True if experiment is running
129129
*/
130-
DecisionService.prototype.__checkIfExperimentIsActive = function(configObj, experimentKey, userId) {
130+
DecisionService.prototype.__checkIfExperimentIsActive = function(configObj, experimentKey) {
131131
if (!projectConfig.isActive(configObj, experimentKey)) {
132132
var experimentNotRunningLogMessage = sprintf(LOG_MESSAGES.EXPERIMENT_NOT_RUNNING, MODULE_NAME, experimentKey);
133133
this.logger.log(LOG_LEVEL.INFO, experimentNotRunningLogMessage);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,12 +404,12 @@ describe('lib/core/decision_service', function() {
404404

405405
describe('__checkIfExperimentIsActive', function () {
406406
it('should return true if experiment is running', function () {
407-
assert.isTrue(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperiment', 'testUser'));
407+
assert.isTrue(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperiment'));
408408
sinon.assert.notCalled(mockLogger.log);
409409
});
410410

411411
it('should return false when experiment is not running', function () {
412-
assert.isFalse(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperimentNotRunning', 'testUser'));
412+
assert.isFalse(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperimentNotRunning'));
413413
sinon.assert.calledOnce(mockLogger.log);
414414
var logMessage = mockLogger.log.args[0][1];
415415
assert.strictEqual(logMessage, sprintf(LOG_MESSAGES.EXPERIMENT_NOT_RUNNING, 'DECISION_SERVICE', 'testExperimentNotRunning'));

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function getMergedVariablesMap(configObj, variation, experimentId, featureVariab
5757
var featureId = configObj.experimentFeatureMap[experimentId];
5858
var variablesObject = {};
5959
if (featureId) {
60-
experimentFeatureVariables = featureVariablesMap[featureId];
60+
var experimentFeatureVariables = featureVariablesMap[featureId];
6161
// Temporary variation variables map to get values to merge.
6262
var tempVariablesIdMap = variation.variables.reduce(function(variablesMap, variable) {
6363
variablesMap[variable.id] = {
@@ -67,8 +67,8 @@ function getMergedVariablesMap(configObj, variation, experimentId, featureVariab
6767
return variablesMap;
6868
}, {});
6969
variablesObject = experimentFeatureVariables.reduce(function(variablesMap, featureVariable) {
70-
variationVariable = tempVariablesIdMap[featureVariable.id];
71-
variableValue = variation.featureEnabled && variationVariable ? variationVariable.value : featureVariable.defaultValue;
70+
var variationVariable = tempVariablesIdMap[featureVariable.id];
71+
var variableValue = variation.featureEnabled && variationVariable ? variationVariable.value : featureVariable.defaultValue;
7272
variablesMap[featureVariable.key] = {
7373
id: featureVariable.id,
7474
key: featureVariable.key,

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ module.exports = {
271271
getExperimentFromKey: function(projectConfig, experimentKey) {
272272
if (projectConfig.experimentKeyMap.hasOwnProperty(experimentKey)) {
273273
var experiment = projectConfig.experimentKeyMap[experimentKey];
274-
if (!!experiment) {
274+
if (experiment) {
275275
return experiment;
276276
}
277277
}
@@ -304,7 +304,7 @@ module.exports = {
304304
getExperimentFromId: function(projectConfig, experimentId, logger) {
305305
if (projectConfig.experimentIdMap.hasOwnProperty(experimentId)) {
306306
var experiment = projectConfig.experimentIdMap[experimentId];
307-
if (!!experiment) {
307+
if (experiment) {
308308
return experiment;
309309
}
310310
}
@@ -325,7 +325,7 @@ module.exports = {
325325
getFeatureFromKey: function(projectConfig, featureKey, logger) {
326326
if (projectConfig.featureKeyMap.hasOwnProperty(featureKey)) {
327327
var feature = projectConfig.featureKeyMap[featureKey];
328-
if (!!feature) {
328+
if (feature) {
329329
return feature;
330330
}
331331
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ Optimizely.prototype.isFeatureEnabled = function(featureKey, userId, attributes)
562562
var variation = decision.variation;
563563
var sourceInfo = {};
564564

565-
if (!!variation) {
565+
if (variation) {
566566
featureEnabled = variation.featureEnabled;
567567
if (decision.decisionSource === DECISION_SOURCES.FEATURE_TEST) {
568568
sourceInfo = {

0 commit comments

Comments
 (0)