-
Notifications
You must be signed in to change notification settings - Fork 896
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add level and levelVal propreties to browser logger (#419)
- Loading branch information
1 parent
250723b
commit 3b1645e
Showing
2 changed files
with
196 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
'use strict' | ||
var test = require('tape') | ||
var pino = require('../browser') | ||
|
||
test('set the level by string', function (t) { | ||
t.plan(4) | ||
var expected = [ | ||
{ | ||
level: 50, | ||
msg: 'this is an error' | ||
}, | ||
{ | ||
level: 60, | ||
msg: 'this is fatal' | ||
} | ||
] | ||
var instance = pino({ | ||
browser: { | ||
write: function (actual) { | ||
checkLogObjects(t, actual, expected.shift()) | ||
} | ||
} | ||
}) | ||
|
||
instance.level = 'error' | ||
instance.info('hello world') | ||
instance.error('this is an error') | ||
instance.fatal('this is fatal') | ||
t.end() | ||
}) | ||
|
||
test('set the level via constructor', function (t) { | ||
t.plan(4) | ||
var expected = [ | ||
{ | ||
level: 50, | ||
msg: 'this is an error' | ||
}, | ||
{ | ||
level: 60, | ||
msg: 'this is fatal' | ||
} | ||
] | ||
var instance = pino({ | ||
level: 'error', | ||
browser: { | ||
write: function (actual) { | ||
checkLogObjects(t, actual, expected.shift()) | ||
} | ||
} | ||
}) | ||
|
||
instance.info('hello world') | ||
instance.error('this is an error') | ||
instance.fatal('this is fatal') | ||
t.end() | ||
}) | ||
|
||
test('the wrong level throws', function (t) { | ||
t.plan(1) | ||
var instance = pino() | ||
t.throws(function () { | ||
instance.level = 'kaboom' | ||
}) | ||
}) | ||
|
||
test('the wrong level by number throws', function (t) { | ||
t.plan(1) | ||
var instance = pino() | ||
t.throws(function () { | ||
instance.levelVal = 55 | ||
}) | ||
}) | ||
|
||
test('exposes level string mappings', function (t) { | ||
t.plan(1) | ||
t.equal(pino.levels.values.error, 50) | ||
}) | ||
|
||
test('exposes level number mappings', function (t) { | ||
t.plan(1) | ||
t.equal(pino.levels.labels[50], 'error') | ||
}) | ||
|
||
test('returns level integer', function (t) { | ||
t.plan(1) | ||
var instance = pino({level: 'error'}) | ||
t.equal(instance.levelVal, 50) | ||
}) | ||
|
||
test('silent level via constructor', function (t) { | ||
var instance = pino({ | ||
level: 'silent', | ||
browser: { | ||
write: function (actual) { | ||
t.fail('no data should be logged') | ||
} | ||
} | ||
}) | ||
|
||
Object.keys(pino.levels.values).forEach(function (level) { | ||
instance[level]('hello world') | ||
}) | ||
t.end() | ||
}) | ||
|
||
test('silent level by string', function (t) { | ||
var instance = pino({ | ||
browser: { | ||
write: function (actual) { | ||
t.fail('no data should be logged') | ||
} | ||
} | ||
}) | ||
|
||
instance.level = 'silent' | ||
|
||
Object.keys(pino.levels.values).forEach(function (level) { | ||
instance[level]('hello world') | ||
}) | ||
t.end() | ||
}) | ||
|
||
test('exposed levels', function (t) { | ||
t.plan(1) | ||
t.deepEqual(Object.keys(pino.levels.values), [ | ||
'fatal', | ||
'error', | ||
'warn', | ||
'info', | ||
'debug', | ||
'trace' | ||
]) | ||
}) | ||
|
||
test('exposed labels', function (t) { | ||
t.plan(1) | ||
t.deepEqual(Object.keys(pino.levels.labels), [ | ||
'10', | ||
'20', | ||
'30', | ||
'40', | ||
'50', | ||
'60' | ||
]) | ||
}) | ||
|
||
function checkLogObjects (t, actual, expected) { | ||
t.ok(actual.time <= Date.now(), 'time is greater than Date.now()') | ||
|
||
var actualCopy = Object.assign({}, actual) | ||
var expectedCopy = Object.assign({}, expected) | ||
delete actualCopy.time | ||
delete expectedCopy.time | ||
|
||
t.deepEqual(actualCopy, expectedCopy) | ||
} |