Skip to content

Commit 615d9da

Browse files
authored
fix (tests): Suppress console output in tests (#181)
Suppress real console output that makes test results hard to read.
1 parent 4d3d40c commit 615d9da

File tree

6 files changed

+104
-61
lines changed

6 files changed

+104
-61
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,10 @@ describe('lib/core/bucketer', function() {
312312
});
313313

314314
describe('testBucketWithBucketingId', function() {
315-
var createdLogger = logger.createLogger({logLevel: LOG_LEVEL.INFO});
315+
var createdLogger = logger.createLogger({
316+
logLevel: LOG_LEVEL.INFO,
317+
logToConsole: false,
318+
});
316319

317320
beforeEach(function() {
318321
configObj = projectConfig.createProjectConfig(testData);

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,10 @@ describe('lib/core/decision_service', function() {
333333

334334
describe('when a bucketingID is provided', function() {
335335
var configObj = projectConfig.createProjectConfig(testData);
336-
var createdLogger = logger.createLogger({logLevel: LOG_LEVEL.DEBUG});
336+
var createdLogger = logger.createLogger({
337+
logLevel: LOG_LEVEL.DEBUG,
338+
logToConsole: false,
339+
});
337340
var optlyInstance;
338341
beforeEach(function () {
339342
optlyInstance = new Optimizely({
@@ -349,13 +352,11 @@ describe('lib/core/decision_service', function() {
349352

350353
sinon.stub(eventDispatcher, 'dispatchEvent');
351354
sinon.stub(errorHandler, 'handleError');
352-
sinon.stub(createdLogger, 'log');
353355
});
354356

355357
afterEach(function () {
356358
eventDispatcher.dispatchEvent.restore();
357359
errorHandler.handleError.restore();
358-
createdLogger.log.restore();
359360
});
360361

361362
var testUserAttributes = {

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

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -565,13 +565,9 @@ describe('lib/core/project_config', function() {
565565
});
566566

567567
describe('#getForcedVariation', function() {
568-
var createdLogger = logger.createLogger({logLevel: LOG_LEVEL.INFO});
569-
beforeEach(function() {
570-
sinon.stub(createdLogger, 'log');
571-
});
572-
573-
afterEach(function() {
574-
createdLogger.log.restore();
568+
var createdLogger = logger.createLogger({
569+
logLevel: LOG_LEVEL.INFO,
570+
logToConsole: false,
575571
});
576572

577573
it('should return null for valid experimentKey, not set', function() {
@@ -592,13 +588,9 @@ describe('lib/core/project_config', function() {
592588
});
593589

594590
describe('#setForcedVariation', function() {
595-
var createdLogger = logger.createLogger({logLevel: LOG_LEVEL.INFO});
596-
beforeEach(function() {
597-
sinon.stub(createdLogger, 'log');
598-
});
599-
600-
afterEach(function() {
601-
createdLogger.log.restore();
591+
var createdLogger = logger.createLogger({
592+
logLevel: LOG_LEVEL.INFO,
593+
logToConsole: false,
602594
});
603595

604596
it('should return true for a valid forcedVariation in setForcedVariation', function() {

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

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
var configValidator = require('./utils/config_validator');
1717
var enums = require('./utils/enums');
18+
var logger = require('./plugins/logger');
1819
var Optimizely = require('./optimizely');
1920
var optimizelyFactory = require('./index.browser');
2021
var packageJSON = require('../package.json');
@@ -23,6 +24,7 @@ var testData = require('./tests/test_data');
2324

2425
var chai = require('chai');
2526
var assert = chai.assert;
27+
var find = require('lodash/find');
2628
var sinon = require('sinon');
2729

2830
describe('javascript-sdk', function() {
@@ -32,9 +34,13 @@ describe('javascript-sdk', function() {
3234
describe('createInstance', function() {
3335
var fakeErrorHandler = { handleError: function() {}};
3436
var fakeEventDispatcher = { dispatchEvent: function() {}};
35-
var fakeLogger = { log: function() {}};
37+
var silentLogger;
3638

3739
beforeEach(function() {
40+
silentLogger = logger.createLogger({
41+
logLevel: enums.LOG_LEVEL.INFO,
42+
logToConsole: false,
43+
});
3844
sinon.spy(console, 'error');
3945
sinon.stub(configValidator, 'validate');
4046

@@ -57,6 +63,7 @@ describe('javascript-sdk', function() {
5763
assert.doesNotThrow(function() {
5864
optimizelyFactory.createInstance({
5965
datafile: {},
66+
logger: silentLogger,
6067
});
6168
});
6269
});
@@ -66,7 +73,7 @@ describe('javascript-sdk', function() {
6673
datafile: {},
6774
errorHandler: fakeErrorHandler,
6875
eventDispatcher: fakeEventDispatcher,
69-
logger: fakeLogger,
76+
logger: silentLogger,
7077
});
7178

7279
assert.instanceOf(optlyInstance, Optimizely);
@@ -77,35 +84,18 @@ describe('javascript-sdk', function() {
7784
datafile: {},
7885
errorHandler: fakeErrorHandler,
7986
eventDispatcher: fakeEventDispatcher,
80-
logger: fakeLogger,
87+
logger: silentLogger,
8188
});
8289
assert.equal('javascript-sdk', optlyInstance.clientEngine);
8390
assert.equal(packageJSON.version, optlyInstance.clientVersion);
8491
});
8592

86-
it('should instantiate the logger with a custom logLevel when provided', function() {
87-
var optlyInstance = optimizelyFactory.createInstance({
88-
datafile: {},
89-
logLevel: enums.LOG_LEVEL.ERROR,
90-
});
91-
92-
assert.equal(optlyInstance.logger.logLevel, enums.LOG_LEVEL.ERROR);
93-
});
94-
95-
it('should default to INFO when no logLevel is provided', function() {
96-
var optlyInstance = optimizelyFactory.createInstance({
97-
datafile: {},
98-
});
99-
100-
assert.equal(optlyInstance.logger.logLevel, enums.LOG_LEVEL.INFO);
101-
});
102-
10393
it('should activate with provided event dispatcher', function(done) {
10494
var optlyInstance = optimizelyFactory.createInstance({
10595
datafile: testData.getTestProjectConfig(),
10696
errorHandler: fakeErrorHandler,
10797
eventDispatcher: eventDispatcher,
108-
logger: fakeLogger,
98+
logger: silentLogger,
10999
});
110100
var activate = optlyInstance.activate('testExperiment', 'testUser');
111101
assert.strictEqual(activate, 'control');
@@ -117,7 +107,7 @@ describe('javascript-sdk', function() {
117107
datafile: testData.getTestProjectConfig(),
118108
errorHandler: fakeErrorHandler,
119109
eventDispatcher: eventDispatcher,
120-
logger: fakeLogger,
110+
logger: silentLogger,
121111
});
122112

123113
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -133,7 +123,7 @@ describe('javascript-sdk', function() {
133123
datafile: testData.getTestProjectConfig(),
134124
errorHandler: fakeErrorHandler,
135125
eventDispatcher: eventDispatcher,
136-
logger: fakeLogger,
126+
logger: silentLogger,
137127
});
138128

139129
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -155,7 +145,7 @@ describe('javascript-sdk', function() {
155145
datafile: testData.getTestProjectConfig(),
156146
errorHandler: fakeErrorHandler,
157147
eventDispatcher: eventDispatcher,
158-
logger: fakeLogger,
148+
logger: silentLogger,
159149
});
160150

161151
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -178,7 +168,7 @@ describe('javascript-sdk', function() {
178168
datafile: testData.getTestProjectConfig(),
179169
errorHandler: fakeErrorHandler,
180170
eventDispatcher: eventDispatcher,
181-
logger: fakeLogger,
171+
logger: silentLogger,
182172
});
183173

184174
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -203,7 +193,7 @@ describe('javascript-sdk', function() {
203193
datafile: testData.getTestProjectConfig(),
204194
errorHandler: fakeErrorHandler,
205195
eventDispatcher: eventDispatcher,
206-
logger: fakeLogger,
196+
logger: silentLogger,
207197
});
208198

209199
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -228,7 +218,7 @@ describe('javascript-sdk', function() {
228218
datafile: testData.getTestProjectConfig(),
229219
errorHandler: fakeErrorHandler,
230220
eventDispatcher: eventDispatcher,
231-
logger: fakeLogger,
221+
logger: silentLogger,
232222
});
233223

234224
var didSetVariation = optlyInstance.setForcedVariation('testExperiment', 'testUser', 'control');
@@ -250,7 +240,7 @@ describe('javascript-sdk', function() {
250240
datafile: testData.getTestProjectConfig(),
251241
errorHandler: fakeErrorHandler,
252242
eventDispatcher: eventDispatcher,
253-
logger: fakeLogger,
243+
logger: silentLogger,
254244
});
255245

256246
var didSetVariation = optlyInstance.setForcedVariation('testExperimentNotRunning', 'testUser', 'controlNotRunning');
@@ -261,6 +251,41 @@ describe('javascript-sdk', function() {
261251

262252
done();
263253
});
254+
255+
describe('automatically created logger instances', function() {
256+
beforeEach(function() {
257+
sinon.stub(logger, 'createLogger').callsFake(function() {
258+
return {
259+
log: function() {},
260+
};
261+
});
262+
});
263+
264+
afterEach(function() {
265+
logger.createLogger.restore();
266+
});
267+
268+
it('should instantiate the logger with a custom logLevel when provided', function() {
269+
var optlyInstance = optimizelyFactory.createInstance({
270+
datafile: testData.getTestProjectConfig(),
271+
logLevel: enums.LOG_LEVEL.ERROR,
272+
});
273+
var foundCall = find(logger.createLogger.getCalls(), function(call) {
274+
return call.returned(sinon.match.same(optlyInstance.logger));
275+
});
276+
assert.strictEqual(foundCall.args[0].logLevel, enums.LOG_LEVEL.ERROR);
277+
});
278+
279+
it('should default to INFO when no logLevel is provided', function() {
280+
var optlyInstance = optimizelyFactory.createInstance({
281+
datafile: testData.getTestProjectConfig(),
282+
});
283+
var foundCall = find(logger.createLogger.getCalls(), function(call) {
284+
return call.returned(sinon.match.same(optlyInstance.logger));
285+
});
286+
assert.strictEqual(foundCall.args[0].logLevel, enums.LOG_LEVEL.INFO);
287+
});
288+
});
264289
});
265290
});
266291
});

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,38 @@ describe('optimizelyFactory', function() {
2828
describe('createInstance', function() {
2929
var fakeErrorHandler = { handleError: function() {}};
3030
var fakeEventDispatcher = { dispatchEvent: function() {}};
31-
var fakeLogger = { log: function() {}};
31+
var fakeLogger;
3232

3333
beforeEach(function() {
34-
sinon.spy(console, 'error');
34+
fakeLogger = { log: sinon.spy() };
35+
sinon.stub(logger, 'createLogger').returns(fakeLogger);
3536
sinon.stub(configValidator, 'validate');
3637
});
3738

3839
afterEach(function() {
39-
console.error.restore();
40+
logger.createLogger.restore();
4041
configValidator.validate.restore();
4142
});
4243

43-
it('should not throw if the provided config is not valid and call console.error if logger is passed in', function() {
44+
it('should not throw if the provided config is not valid and log an error if logger is passed in', function() {
4445
configValidator.validate.throws(new Error('Invalid config or something'));
4546
assert.doesNotThrow(function() {
4647
optimizelyFactory.createInstance({
4748
datafile: {},
4849
logger: logger.createLogger({ logLevel: enums.LOG_LEVEL.INFO }),
4950
});
5051
});
51-
assert.isTrue(console.error.called);
52+
sinon.assert.calledWith(fakeLogger.log, enums.LOG_LEVEL.ERROR);
5253
});
5354

54-
it('should not throw if the provided config is not valid and call console.error if no-op logger is used', function() {
55+
it('should not throw if the provided config is not valid and log an error if no-op logger is used', function() {
5556
configValidator.validate.throws(new Error('Invalid config or something'));
5657
assert.doesNotThrow(function() {
5758
optimizelyFactory.createInstance({
5859
datafile: {},
5960
});
6061
});
61-
assert.isTrue(console.error.called);
62+
sinon.assert.calledWith(fakeLogger.log, enums.LOG_LEVEL.ERROR);
6263
});
6364

6465
it('should create an instance of optimizely', function() {

0 commit comments

Comments
 (0)