From 9c439ba07e32b5b9e36b16bfab049e08456285d4 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Thu, 20 Sep 2018 11:14:51 -0700 Subject: [PATCH] fix(logs): Change invalid experiment key to debug level. --- packages/optimizely-sdk/lib/optimizely/index.js | 3 ++- .../optimizely-sdk/lib/optimizely/index.tests.js | 13 ++----------- packages/optimizely-sdk/lib/utils/enums/index.js | 2 +- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/optimizely-sdk/lib/optimizely/index.js b/packages/optimizely-sdk/lib/optimizely/index.js index 590f4cb0e..01719e5ea 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.js +++ b/packages/optimizely-sdk/lib/optimizely/index.js @@ -312,7 +312,8 @@ Optimizely.prototype.getVariation = function(experimentKey, userId, attributes) var experiment = this.configObj.experimentKeyMap[experimentKey]; if (fns.isEmpty(experiment)) { - throw new Error(sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, MODULE_NAME, experimentKey)); + this.logger.log(LOG_LEVEL.DEBUG, sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, MODULE_NAME, experimentKey)); + return null; } return this.decisionService.getVariation(experimentKey, userId, attributes); diff --git a/packages/optimizely-sdk/lib/optimizely/index.tests.js b/packages/optimizely-sdk/lib/optimizely/index.tests.js index b5b671393..adc0d7ceb 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.tests.js +++ b/packages/optimizely-sdk/lib/optimizely/index.tests.js @@ -730,15 +730,11 @@ describe('lib/optimizely', function() { assert.strictEqual(logMessage2, sprintf(LOG_MESSAGES.NOT_ACTIVATING_USER, 'OPTIMIZELY', 'null', 'testExperiment')); }); - it('should throw an error for invalid experiment key', function() { + it('should log an error for invalid experiment key', function() { assert.isNull(optlyInstance.activate('invalidExperimentKey', 'testUser')); sinon.assert.notCalled(eventDispatcher.dispatchEvent); - sinon.assert.calledOnce(errorHandler.handleError); - var errorMessage = errorHandler.handleError.lastCall.args[0].message; - assert.strictEqual(errorMessage, sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, 'OPTIMIZELY', 'invalidExperimentKey')); - sinon.assert.calledTwice(createdLogger.log); var logMessage1 = createdLogger.log.args[0][1]; assert.strictEqual(logMessage1, sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, 'OPTIMIZELY', 'invalidExperimentKey')); @@ -1554,15 +1550,10 @@ describe('lib/optimizely', function() { assert.strictEqual(logMessage, sprintf(ERROR_MESSAGES.INVALID_INPUT_FORMAT, 'OPTIMIZELY', 'user_id')); }); - it('should throw an error for invalid experiment key', function() { + it('should log an error for invalid experiment key', function() { var getVariationWithError = optlyInstance.getVariation('invalidExperimentKey', 'testUser'); - assert.isNull(getVariationWithError); - sinon.assert.calledOnce(errorHandler.handleError); - var errorMessage = errorHandler.handleError.lastCall.args[0].message; - assert.strictEqual(errorMessage, sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, 'OPTIMIZELY', 'invalidExperimentKey')); - sinon.assert.calledOnce(createdLogger.log); var logMessage = createdLogger.log.args[0][1]; assert.strictEqual(logMessage, sprintf(ERROR_MESSAGES.INVALID_EXPERIMENT_KEY, 'OPTIMIZELY', 'invalidExperimentKey')); diff --git a/packages/optimizely-sdk/lib/utils/enums/index.js b/packages/optimizely-sdk/lib/utils/enums/index.js index f54bba1fd..6a531e620 100644 --- a/packages/optimizely-sdk/lib/utils/enums/index.js +++ b/packages/optimizely-sdk/lib/utils/enums/index.js @@ -38,7 +38,7 @@ exports.ERROR_MESSAGES = { INVALID_EVENT_DISPATCHER: '%s: Provided "eventDispatcher" is in an invalid format.', INVALID_EVENT_KEY: '%s: Event key %s is not in datafile.', INVALID_EVENT_TAGS: '%s: Provided event tags are in an invalid format.', - INVALID_EXPERIMENT_KEY: '%s: Experiment key %s is not in datafile.', + INVALID_EXPERIMENT_KEY: '%s: Experiment key %s is not in datafile. It is either invalid, paused, or archived.', INVALID_EXPERIMENT_ID: '%s: Experiment ID %s is not in datafile.', INVALID_GROUP_ID: '%s: Group ID %s is not in datafile.', INVALID_LOGGER: '%s: Provided "logger" is in an invalid format.',