From 0aa0e0041019edff6f78b3695196b82cf1e95cc6 Mon Sep 17 00:00:00 2001 From: fayyaz arshad Date: Wed, 6 Nov 2019 15:16:24 +0500 Subject: [PATCH 1/3] Fixed log error message when user allocated to vacated space in group or experiment --- packages/optimizely-sdk/lib/core/bucketer/index.js | 4 ++-- packages/optimizely-sdk/lib/core/decision_service/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/optimizely-sdk/lib/core/bucketer/index.js b/packages/optimizely-sdk/lib/core/bucketer/index.js index 1884f3f98..6a2424b15 100644 --- a/packages/optimizely-sdk/lib/core/bucketer/index.js +++ b/packages/optimizely-sdk/lib/core/bucketer/index.js @@ -87,10 +87,10 @@ module.exports = { bucketerParams.logger.log(LOG_LEVEL.DEBUG, bucketedUserLogMessage); var entityId = module.exports._findBucket(bucketValue, bucketerParams.trafficAllocationConfig); - if (entityId === null) { + if (entityId === null || entityId === '') { var userHasNoVariationLogMessage = sprintf(LOG_MESSAGES.USER_HAS_NO_VARIATION, MODULE_NAME, bucketerParams.userId, bucketerParams.experimentKey); bucketerParams.logger.log(LOG_LEVEL.DEBUG, userHasNoVariationLogMessage); - } else if (entityId === '' || !bucketerParams.variationIdMap.hasOwnProperty(entityId)) { + } else if (!bucketerParams.variationIdMap.hasOwnProperty(entityId)) { var invalidVariationIdLogMessage = sprintf(LOG_MESSAGES.INVALID_VARIATION_ID, MODULE_NAME); bucketerParams.logger.log(LOG_LEVEL.WARNING, invalidVariationIdLogMessage); return null; diff --git a/packages/optimizely-sdk/lib/core/decision_service/index.js b/packages/optimizely-sdk/lib/core/decision_service/index.js index 574cf6df8..c4c744c5b 100644 --- a/packages/optimizely-sdk/lib/core/decision_service/index.js +++ b/packages/optimizely-sdk/lib/core/decision_service/index.js @@ -349,7 +349,7 @@ DecisionService.prototype._getVariationForFeatureExperiment = function(configObj DecisionService.prototype._getExperimentInGroup = function(configObj, group, userId) { var experimentId = bucketer.bucketUserIntoExperiment(group, userId, userId, this.logger); - if (experimentId !== null) { + if (experimentId !== null && experimentId !== '') { this.logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP, MODULE_NAME, userId, experimentId, group.id)); var experiment = projectConfig.getExperimentFromId(configObj, experimentId, this.logger); if (experiment) { From 782a5e73d6ee6feb4f05f0afcdad99b9d7f2fe7d Mon Sep 17 00:00:00 2001 From: fayyaz arshad Date: Wed, 6 Nov 2019 15:40:59 +0500 Subject: [PATCH 2/3] Fixed bucketer tests --- packages/optimizely-sdk/lib/core/bucketer/index.tests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/optimizely-sdk/lib/core/bucketer/index.tests.js b/packages/optimizely-sdk/lib/core/bucketer/index.tests.js index d1e851ee6..aba0ec90f 100644 --- a/packages/optimizely-sdk/lib/core/bucketer/index.tests.js +++ b/packages/optimizely-sdk/lib/core/bucketer/index.tests.js @@ -258,7 +258,7 @@ describe('lib/core/bucketer', function() { it('should return null', function() { var bucketerParamsTest1 = cloneDeep(bucketerParams); bucketerParamsTest1.userId = 'ppid1'; - expect(bucketer.bucket(bucketerParamsTest1)).to.equal(null); + expect(bucketer.bucket(bucketerParamsTest1)).to.equal(''); }); }); From 5eeab662bd46c7844bfb046aa88c63d436d5290f Mon Sep 17 00:00:00 2001 From: fayyaz arshad Date: Wed, 6 Nov 2019 19:11:40 +0500 Subject: [PATCH 3/3] changes after comments --- packages/optimizely-sdk/lib/core/bucketer/index.js | 2 +- packages/optimizely-sdk/lib/core/decision_service/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/optimizely-sdk/lib/core/bucketer/index.js b/packages/optimizely-sdk/lib/core/bucketer/index.js index 6a2424b15..ed02dff35 100644 --- a/packages/optimizely-sdk/lib/core/bucketer/index.js +++ b/packages/optimizely-sdk/lib/core/bucketer/index.js @@ -87,7 +87,7 @@ module.exports = { bucketerParams.logger.log(LOG_LEVEL.DEBUG, bucketedUserLogMessage); var entityId = module.exports._findBucket(bucketValue, bucketerParams.trafficAllocationConfig); - if (entityId === null || entityId === '') { + if (!entityId) { var userHasNoVariationLogMessage = sprintf(LOG_MESSAGES.USER_HAS_NO_VARIATION, MODULE_NAME, bucketerParams.userId, bucketerParams.experimentKey); bucketerParams.logger.log(LOG_LEVEL.DEBUG, userHasNoVariationLogMessage); } else if (!bucketerParams.variationIdMap.hasOwnProperty(entityId)) { diff --git a/packages/optimizely-sdk/lib/core/decision_service/index.js b/packages/optimizely-sdk/lib/core/decision_service/index.js index c4c744c5b..8d29544ef 100644 --- a/packages/optimizely-sdk/lib/core/decision_service/index.js +++ b/packages/optimizely-sdk/lib/core/decision_service/index.js @@ -349,7 +349,7 @@ DecisionService.prototype._getVariationForFeatureExperiment = function(configObj DecisionService.prototype._getExperimentInGroup = function(configObj, group, userId) { var experimentId = bucketer.bucketUserIntoExperiment(group, userId, userId, this.logger); - if (experimentId !== null && experimentId !== '') { + if (experimentId) { this.logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP, MODULE_NAME, userId, experimentId, group.id)); var experiment = projectConfig.getExperimentFromId(configObj, experimentId, this.logger); if (experiment) {