Skip to content

Commit 9f07d35

Browse files
authored
feat: STRF-9922 Improve renderer logging (#244)
1 parent 78a8260 commit 9f07d35

2 files changed

Lines changed: 47 additions & 2 deletions

File tree

index.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class HandlebarsRenderer {
5151

5252
this.logger = logger;
5353
this._setHandlebarsLogger();
54+
this._overrideConsoleLog();
5455
this.setSiteSettings(siteSettings || {});
5556
this.setThemeSettings(themeSettings || {});
5657
this.setTranslator(null);
@@ -356,6 +357,18 @@ class HandlebarsRenderer {
356357
};
357358
}
358359

360+
/**
361+
* As some handlebars helpers do not use the logger, we need to override the console.log method
362+
*/
363+
_overrideConsoleLog() {
364+
if (this.logger !== console) {
365+
console.log = this.logger.log;
366+
console.info = this.logger.info;
367+
console.error = this.logger.error;
368+
console.warn = this.logger.warn;
369+
}
370+
}
371+
359372
/**
360373
*
361374
* @param {String} level

spec/index.js

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,9 @@ describe('logging', () => {
415415
sandbox = Sinon.createSandbox();
416416
logger = {
417417
log: Sinon.fake(),
418+
info: Sinon.fake(),
419+
warn: Sinon.fake(),
420+
error: Sinon.fake(),
418421
};
419422
console = {
420423
log: Sinon.fake(),
@@ -431,7 +434,7 @@ describe('logging', () => {
431434

432435
it('log helper uses given logger', done => {
433436
renderer.renderString('{{log bar}}', context).then(() => {
434-
expect(logger.log.calledWith('baz')).to.equal(true);
437+
expect(logger.info.calledWith('baz')).to.equal(true);
435438
done();
436439
});
437440
});
@@ -456,7 +459,7 @@ describe('logging', () => {
456459
it('console log helper uses given logger', done => {
457460
renderer = new HandlebarsRenderer({}, {}, 'v4', console);
458461
renderer.renderString('{{log bar}}', context).then(() => {
459-
expect(console.log.calledWith('baz')).to.equal(true);
462+
expect(console.info.calledWith('baz')).to.equal(true);
460463
done();
461464
});
462465
});
@@ -476,4 +479,33 @@ describe('logging', () => {
476479
done();
477480
});
478481
});
482+
483+
it('should override default console.log', done => {
484+
renderer = new HandlebarsRenderer({}, {}, 'v4', logger);
485+
console.log('test');
486+
expect(logger.log.calledWith('test')).to.equal(true);
487+
done();
488+
});
489+
490+
it('should override default console.info', done => {
491+
renderer = new HandlebarsRenderer({}, {}, 'v4', logger);
492+
console.info('info');
493+
expect(logger.info.calledWith('info')).to.equal(true);
494+
done();
495+
});
496+
497+
it('should override default console.error', done => {
498+
renderer = new HandlebarsRenderer({}, {}, 'v4', logger);
499+
console.error('error');
500+
expect(logger.error.calledWith('error')).to.equal(true);
501+
done();
502+
});
503+
504+
it('should override default console.warn', done => {
505+
renderer = new HandlebarsRenderer({}, {}, 'v4', logger);
506+
console.warn('test');
507+
expect(logger.warn.calledWith('test')).to.equal(true);
508+
done();
509+
});
510+
479511
});

0 commit comments

Comments
 (0)