Skip to content

Commit 6d8cceb

Browse files
author
Jordan Garcia
authored
Use event processor defaults only when config undefined (#284)
* Use event processor defaults when 0 is passed in * Fix tests
1 parent aa8c9a0 commit 6d8cceb

File tree

2 files changed

+66
-2
lines changed

2 files changed

+66
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ function Optimizely(config) {
109109

110110
this.eventProcessor = new eventProcessor.LogTierV1EventProcessor({
111111
dispatcher: this.eventDispatcher,
112-
flushInterval: config.eventFlushInterval || DEFAULT_EVENT_FLUSH_INTERVAL,
113-
maxQueueSize: config.eventBatchSize || DEFAULT_EVENT_MAX_QUEUE_SIZE,
112+
flushInterval: config.eventFlushInterval !== undefined ? config.eventFlushInterval : DEFAULT_EVENT_FLUSH_INTERVAL,
113+
maxQueueSize: config.eventBatchSize !== undefined ? config.eventBatchSize : DEFAULT_EVENT_MAX_QUEUE_SIZE,
114114
});
115115
this.eventProcessor.start();
116116

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

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var projectConfigManager = require('../core/project_config/project_config_manage
2222
var enums = require('../utils/enums');
2323
var eventBuilder = require('../core/event_builder/index.js');
2424
var eventDispatcher = require('../plugins/event_dispatcher/index.node');
25+
var eventProcessor = require('@optimizely/js-sdk-event-processor');
2526
var errorHandler = require('../plugins/error_handler');
2627
var fns = require('../utils/fns');
2728
var jsonSchemaValidator = require('../utils/json_schema_validator');
@@ -4771,6 +4772,69 @@ describe('lib/optimizely', function() {
47714772
});
47724773
});
47734774

4775+
describe('event processor defaults', function() {
4776+
var createdLogger = logger.createLogger({
4777+
logLevel: LOG_LEVEL.INFO,
4778+
logToConsole: false,
4779+
});
4780+
4781+
beforeEach(function() {
4782+
sinon.stub(eventDispatcher, 'dispatchEvent');
4783+
sinon.stub(errorHandler, 'handleError');
4784+
sinon.stub(createdLogger, 'log');
4785+
sinon.spy(eventProcessor, 'LogTierV1EventProcessor');
4786+
});
4787+
4788+
afterEach(function() {
4789+
eventDispatcher.dispatchEvent.restore();
4790+
errorHandler.handleError.restore();
4791+
createdLogger.log.restore();
4792+
eventProcessor.LogTierV1EventProcessor.restore();
4793+
});
4794+
4795+
describe('when eventFlushInterval and maxQueueSize is not defined', function() {
4796+
it('should not instantiate the eventProcessor with the default event flush interval', function() {
4797+
optlyInstance = new Optimizely({
4798+
clientEngine: 'node-sdk',
4799+
errorHandler: errorHandler,
4800+
eventDispatcher: eventDispatcher,
4801+
jsonSchemaValidator: jsonSchemaValidator,
4802+
logger: createdLogger,
4803+
sdkKey: '12345',
4804+
isValidInstance: true,
4805+
});
4806+
4807+
sinon.assert.calledWithExactly(eventProcessor.LogTierV1EventProcessor, {
4808+
dispatcher: eventDispatcher,
4809+
flushInterval: 5000,
4810+
maxQueueSize: 1,
4811+
});
4812+
});
4813+
});
4814+
4815+
describe('when eventFlushInterval and maxQueueSize are both defined', function() {
4816+
it('should not instantiate the eventProcessor with the default event flush interval', function() {
4817+
optlyInstance = new Optimizely({
4818+
clientEngine: 'node-sdk',
4819+
errorHandler: errorHandler,
4820+
eventDispatcher: eventDispatcher,
4821+
jsonSchemaValidator: jsonSchemaValidator,
4822+
logger: createdLogger,
4823+
sdkKey: '12345',
4824+
isValidInstance: true,
4825+
eventFlushInterval: 50,
4826+
eventBatchSize: 100,
4827+
});
4828+
4829+
sinon.assert.calledWithExactly(eventProcessor.LogTierV1EventProcessor, {
4830+
dispatcher: eventDispatcher,
4831+
flushInterval: 50,
4832+
maxQueueSize: 100,
4833+
});
4834+
});
4835+
});
4836+
});
4837+
47744838
describe('project config management', function() {
47754839
var createdLogger = logger.createLogger({
47764840
logLevel: LOG_LEVEL.INFO,

0 commit comments

Comments
 (0)