Skip to content

Commit d71a395

Browse files
author
Matt Carroll
committed
Use default event dispatcher in RN entry point when none provided by user
1 parent bbdb2cc commit d71a395

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ module.exports = {
9090
{
9191
clientEngine: enums.JAVASCRIPT_CLIENT_ENGINE,
9292
eventBatchSize: DEFAULT_EVENT_BATCH_SIZE,
93+
eventDispatcher: defaultEventDispatcher,
9394
eventFlushInterval: DEFAULT_EVENT_FLUSH_INTERVAL,
9495
},
9596
config,
9697
{
97-
eventDispatcher: config.eventDispatcher,
9898
// always get the OptimizelyLogger facade from logging
9999
logger: logger,
100100
errorHandler: logging.getErrorHandler(),

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var packageJSON = require('../package.json');
2222
var testData = require('./tests/test_data');
2323
var eventProcessor = require('@optimizely/js-sdk-event-processor');
2424
var eventProcessorConfigValidator = require('./utils/event_processor_config_validator');
25+
var defaultEventDispatcher = require('./plugins/event_dispatcher/index.browser');
2526

2627
var chai = require('chai');
2728
var assert = chai.assert;
@@ -131,6 +132,30 @@ describe('javascript-sdk/react-native', function() {
131132
assert.strictEqual(activate, 'control');
132133
});
133134

135+
describe('when no event dispatcher passed to createInstance', function() {
136+
beforeEach(function() {
137+
sinon.stub(defaultEventDispatcher, 'dispatchEvent', function(evt, cb) {
138+
cb();
139+
});
140+
})
141+
142+
afterEach(function() {
143+
defaultEventDispatcher.dispatchEvent.restore();
144+
});
145+
146+
it('uses the default event dispatcher', function() {
147+
var optlyInstance = optimizelyFactory.createInstance({
148+
datafile: testData.getTestProjectConfig(),
149+
errorHandler: fakeErrorHandler,
150+
logger: silentLogger,
151+
});
152+
optlyInstance.activate('testExperiment', 'testUser');
153+
return optlyInstance.close().then(function() {
154+
sinon.assert.calledOnce(defaultEventDispatcher.dispatchEvent);
155+
});
156+
});
157+
});
158+
134159
describe('when passing in logLevel', function() {
135160
beforeEach(function() {
136161
sinon.stub(logging, 'setLogLevel');

0 commit comments

Comments
 (0)