Skip to content

Commit a0b3462

Browse files
authored
Add plugins to top level entry points (#219)
1 parent a0cecd4 commit a0b3462

File tree

5 files changed

+61
-24
lines changed

5 files changed

+61
-24
lines changed

packages/optimizely-sdk/.prettierrc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"printWidth": 120,
3+
"tabWidth": 2,
4+
"useTabs": false,
5+
"semi": true,
6+
"singleQuote": true,
7+
"trailingComma": "es5",
8+
"bracketSpacing": true,
9+
"jsxBracketSameLine": false
10+
}

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,17 @@ var Optimizely = require('./optimizely');
2323

2424
var MODULE_NAME = 'INDEX';
2525

26+
27+
2628
/**
27-
* Entry point into the Optimizely Node testing SDK
29+
* Entry point into the Optimizely Browser SDK
2830
*/
2931
module.exports = {
32+
logger: logger,
33+
errorHandler: defaultErrorHandler,
34+
eventDispatcher: defaultEventDispatcher,
35+
enums: enums,
36+
3037
/**
3138
* Creates an instance of the Optimizely class
3239
* @param {Object} config
@@ -76,5 +83,8 @@ module.exports = {
7683
config.errorHandler.handleError(e);
7784
return null;
7885
}
79-
}
86+
},
87+
88+
89+
8090
};

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

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@
1414
* limitations under the License.
1515
*/
1616
var configValidator = require('./utils/config_validator');
17-
var enums = require('./utils/enums');
18-
var logger = require('./plugins/logger');
1917
var Optimizely = require('./optimizely');
2018
var optimizelyFactory = require('./index.browser');
2119
var packageJSON = require('../package.json');
22-
var eventDispatcher = require('./plugins/event_dispatcher/index.browser');
2320
var testData = require('./tests/test_data');
2421

2522
var chai = require('chai');
@@ -31,14 +28,22 @@ describe('javascript-sdk', function() {
3128
describe('APIs', function() {
3229
var xhr;
3330
var requests;
31+
32+
it('should expose logger, errorHandler, eventDispatcher and enums', function() {
33+
assert.isDefined(optimizelyFactory.logger);
34+
assert.isDefined(optimizelyFactory.errorHandler);
35+
assert.isDefined(optimizelyFactory.eventDispatcher);
36+
assert.isDefined(optimizelyFactory.enums);
37+
});
38+
3439
describe('createInstance', function() {
3540
var fakeErrorHandler = { handleError: function() {}};
3641
var fakeEventDispatcher = { dispatchEvent: function() {}};
3742
var silentLogger;
3843

3944
beforeEach(function() {
40-
silentLogger = logger.createLogger({
41-
logLevel: enums.LOG_LEVEL.INFO,
45+
silentLogger = optimizelyFactory.logger.createLogger({
46+
logLevel: optimizelyFactory.enums.LOG_LEVEL.INFO,
4247
logToConsole: false,
4348
});
4449
sinon.spy(console, 'error');
@@ -94,7 +99,7 @@ describe('javascript-sdk', function() {
9499
var optlyInstance = optimizelyFactory.createInstance({
95100
datafile: testData.getTestProjectConfig(),
96101
errorHandler: fakeErrorHandler,
97-
eventDispatcher: eventDispatcher,
102+
eventDispatcher: optimizelyFactory.eventDispatcher,
98103
logger: silentLogger,
99104
});
100105
var activate = optlyInstance.activate('testExperiment', 'testUser');
@@ -105,7 +110,7 @@ describe('javascript-sdk', function() {
105110
var optlyInstance = optimizelyFactory.createInstance({
106111
datafile: testData.getTestProjectConfig(),
107112
errorHandler: fakeErrorHandler,
108-
eventDispatcher: eventDispatcher,
113+
eventDispatcher: optimizelyFactory.eventDispatcher,
109114
logger: silentLogger,
110115
});
111116

@@ -120,7 +125,7 @@ describe('javascript-sdk', function() {
120125
var optlyInstance = optimizelyFactory.createInstance({
121126
datafile: testData.getTestProjectConfig(),
122127
errorHandler: fakeErrorHandler,
123-
eventDispatcher: eventDispatcher,
128+
eventDispatcher: optimizelyFactory.eventDispatcher,
124129
logger: silentLogger,
125130
});
126131

@@ -141,7 +146,7 @@ describe('javascript-sdk', function() {
141146
var optlyInstance = optimizelyFactory.createInstance({
142147
datafile: testData.getTestProjectConfig(),
143148
errorHandler: fakeErrorHandler,
144-
eventDispatcher: eventDispatcher,
149+
eventDispatcher: optimizelyFactory.eventDispatcher,
145150
logger: silentLogger,
146151
});
147152

@@ -163,7 +168,7 @@ describe('javascript-sdk', function() {
163168
var optlyInstance = optimizelyFactory.createInstance({
164169
datafile: testData.getTestProjectConfig(),
165170
errorHandler: fakeErrorHandler,
166-
eventDispatcher: eventDispatcher,
171+
eventDispatcher: optimizelyFactory.eventDispatcher,
167172
logger: silentLogger,
168173
});
169174

@@ -187,7 +192,7 @@ describe('javascript-sdk', function() {
187192
var optlyInstance = optimizelyFactory.createInstance({
188193
datafile: testData.getTestProjectConfig(),
189194
errorHandler: fakeErrorHandler,
190-
eventDispatcher: eventDispatcher,
195+
eventDispatcher: optimizelyFactory.eventDispatcher,
191196
logger: silentLogger,
192197
});
193198

@@ -211,7 +216,7 @@ describe('javascript-sdk', function() {
211216
var optlyInstance = optimizelyFactory.createInstance({
212217
datafile: testData.getTestProjectConfig(),
213218
errorHandler: fakeErrorHandler,
214-
eventDispatcher: eventDispatcher,
219+
eventDispatcher: optimizelyFactory.eventDispatcher,
215220
logger: silentLogger,
216221
});
217222

@@ -232,7 +237,7 @@ describe('javascript-sdk', function() {
232237
var optlyInstance = optimizelyFactory.createInstance({
233238
datafile: testData.getTestProjectConfig(),
234239
errorHandler: fakeErrorHandler,
235-
eventDispatcher: eventDispatcher,
240+
eventDispatcher: optimizelyFactory.eventDispatcher,
236241
logger: silentLogger,
237242
});
238243

@@ -245,36 +250,36 @@ describe('javascript-sdk', function() {
245250

246251
describe('automatically created logger instances', function() {
247252
beforeEach(function() {
248-
sinon.stub(logger, 'createLogger').callsFake(function() {
253+
sinon.stub(optimizelyFactory.logger, 'createLogger').callsFake(function() {
249254
return {
250255
log: function() {},
251256
};
252257
});
253258
});
254259

255260
afterEach(function() {
256-
logger.createLogger.restore();
261+
optimizelyFactory.logger.createLogger.restore();
257262
});
258263

259264
it('should instantiate the logger with a custom logLevel when provided', function() {
260265
var optlyInstance = optimizelyFactory.createInstance({
261266
datafile: testData.getTestProjectConfig(),
262-
logLevel: enums.LOG_LEVEL.ERROR,
267+
logLevel: optimizelyFactory.enums.LOG_LEVEL.ERROR,
263268
});
264-
var foundCall = find(logger.createLogger.getCalls(), function(call) {
269+
var foundCall = find(optimizelyFactory.logger.createLogger.getCalls(), function(call) {
265270
return call.returned(sinon.match.same(optlyInstance.logger));
266271
});
267-
assert.strictEqual(foundCall.args[0].logLevel, enums.LOG_LEVEL.ERROR);
272+
assert.strictEqual(foundCall.args[0].logLevel, optimizelyFactory.enums.LOG_LEVEL.ERROR);
268273
});
269274

270275
it('should default to INFO when no logLevel is provided', function() {
271276
var optlyInstance = optimizelyFactory.createInstance({
272277
datafile: testData.getTestProjectConfig(),
273278
});
274-
var foundCall = find(logger.createLogger.getCalls(), function(call) {
279+
var foundCall = find(optimizelyFactory.logger.createLogger.getCalls(), function(call) {
275280
return call.returned(sinon.match.same(optlyInstance.logger));
276281
});
277-
assert.strictEqual(foundCall.args[0].logLevel, enums.LOG_LEVEL.INFO);
282+
assert.strictEqual(foundCall.args[0].logLevel, optimizelyFactory.enums.LOG_LEVEL.INFO);
278283
});
279284
});
280285
});

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ var MODULE_NAME = 'INDEX';
3131
* Entry point into the Optimizely Node testing SDK
3232
*/
3333
module.exports = {
34+
logger: logger,
35+
errorHandler: defaultErrorHandler,
36+
eventDispatcher: defaultEventDispatcher,
37+
enums: enums,
38+
3439
/**
3540
* Creates an instance of the Optimizely class
3641
* @param {Object} config

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@ var sinon = require('sinon');
2525

2626
describe('optimizelyFactory', function() {
2727
describe('APIs', function() {
28+
it('should expose logger, errorHandler, eventDispatcher and enums', function() {
29+
assert.isDefined(optimizelyFactory.logger);
30+
assert.isDefined(optimizelyFactory.errorHandler);
31+
assert.isDefined(optimizelyFactory.eventDispatcher);
32+
assert.isDefined(optimizelyFactory.enums);
33+
});
34+
2835
describe('createInstance', function() {
29-
var fakeErrorHandler = { handleError: function() {}};
30-
var fakeEventDispatcher = { dispatchEvent: function() {}};
36+
var fakeErrorHandler = { handleError: function() {} };
37+
var fakeEventDispatcher = { dispatchEvent: function() {} };
3138
var fakeLogger;
3239

3340
beforeEach(function() {

0 commit comments

Comments
 (0)