Skip to content

Commit e9662bf

Browse files
committed
Add test coverage
1 parent 04232cc commit e9662bf

File tree

1 file changed

+59
-4
lines changed

1 file changed

+59
-4
lines changed

plugins/node/opentelemetry-instrumentation-bunyan/test/bunyan.test.ts

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -320,14 +320,40 @@ describe('BunyanInstrumentation', () => {
320320
assert.strictEqual(rec.attributes.aProperty, 'bar');
321321
});
322322

323-
it('log record level configuration (higher than default)', () => {
324-
instrumentation.setConfig({ logSeverity: SeverityNumber.WARN });
323+
it('log record error level', () => {
324+
instrumentation.setConfig({ logSeverity: SeverityNumber.FATAL });
325+
// Setting `logSeverity` only has an impact on Loggers created
326+
// *after* it is set. So we cannot test with the `log` created in
327+
// `beforeEach()` above.
328+
log = Logger.createLogger({ name: 'test-logger-name', stream });
329+
log.error('error log');
330+
log.fatal('fatal log');
331+
const logRecords = memExporter.getFinishedLogRecords();
332+
// Only one log record match configured severity
333+
assert.strictEqual(logRecords.length, 1);
334+
assert.strictEqual(logRecords[0].body, 'fatal log');
335+
});
325336

337+
it('log record error level', () => {
338+
instrumentation.setConfig({ logSeverity: SeverityNumber.ERROR });
326339
// Setting `logSeverity` only has an impact on Loggers created
327340
// *after* it is set. So we cannot test with the `log` created in
328341
// `beforeEach()` above.
329342
log = Logger.createLogger({ name: 'test-logger-name', stream });
343+
log.warn('warn log');
344+
log.error('error log');
345+
const logRecords = memExporter.getFinishedLogRecords();
346+
// Only one log record match configured severity
347+
assert.strictEqual(logRecords.length, 1);
348+
assert.strictEqual(logRecords[0].body, 'error log');
349+
});
330350

351+
it('log record warn level', () => {
352+
instrumentation.setConfig({ logSeverity: SeverityNumber.WARN });
353+
// Setting `logSeverity` only has an impact on Loggers created
354+
// *after* it is set. So we cannot test with the `log` created in
355+
// `beforeEach()` above.
356+
log = Logger.createLogger({ name: 'test-logger-name', stream });
331357
log.info('info log');
332358
log.warn('warn log');
333359
const logRecords = memExporter.getFinishedLogRecords();
@@ -336,12 +362,25 @@ describe('BunyanInstrumentation', () => {
336362
assert.strictEqual(logRecords[0].body, 'warn log');
337363
});
338364

339-
it('log record level configuration (lower than default)', () => {
365+
it('log record info level', () => {
366+
instrumentation.setConfig({ logSeverity: SeverityNumber.INFO });
367+
// Setting `logSeverity` only has an impact on Loggers created
368+
// *after* it is set. So we cannot test with the `log` created in
369+
// `beforeEach()` above.
370+
log = Logger.createLogger({ name: 'test-logger-name', stream });
371+
log.debug('debug log');
372+
log.info('info log');
373+
const logRecords = memExporter.getFinishedLogRecords();
374+
// Only one log record match configured severity
375+
assert.strictEqual(logRecords.length, 1);
376+
assert.strictEqual(logRecords[0].body, 'info log');
377+
});
378+
379+
it('log record debug level', () => {
340380
instrumentation.setConfig({ logSeverity: SeverityNumber.DEBUG });
341381
log = Logger.createLogger({ name: 'test-logger-name', stream });
342382
log.info('info log');
343383
log.debug('debug log');
344-
345384
// Just the log.info() writes to `stream`.
346385
sinon.assert.calledOnce(writeSpy);
347386
// Both log.info() and log.debug() should be written to the OTel Logs SDK.
@@ -350,6 +389,22 @@ describe('BunyanInstrumentation', () => {
350389
assert.strictEqual(logRecords[0].body, 'info log');
351390
assert.strictEqual(logRecords[1].body, 'debug log');
352391
});
392+
393+
it('log record trace level', () => {
394+
instrumentation.setConfig({ logSeverity: SeverityNumber.TRACE });
395+
log = Logger.createLogger({ name: 'test-logger-name', stream });
396+
log.info('info log');
397+
log.debug('debug log');
398+
log.debug('trace log');
399+
// Just the log.info() writes to `stream`.
400+
sinon.assert.calledOnce(writeSpy);
401+
// Both log.info() and log.debug() should be written to the OTel Logs SDK.
402+
const logRecords = memExporter.getFinishedLogRecords();
403+
assert.strictEqual(logRecords.length, 3);
404+
assert.strictEqual(logRecords[0].body, 'info log');
405+
assert.strictEqual(logRecords[1].body, 'debug log');
406+
assert.strictEqual(logRecords[2].body, 'trace log');
407+
});
353408
});
354409

355410
describe('disabled instrumentation', () => {

0 commit comments

Comments
 (0)