Skip to content

Commit

Permalink
adjust naming to reflect separation between bin & pretty.js
Browse files Browse the repository at this point in the history
  • Loading branch information
Joey van Dijk committed Mar 6, 2017
1 parent 172a145 commit bb2aa9f
Showing 1 changed file with 45 additions and 44 deletions.
89 changes: 45 additions & 44 deletions test/pretty.test.js
Expand Up @@ -2,6 +2,7 @@

var test = require('tap').test
var pino = require('../')
var pretty = require('../pretty')
var os = require('os')
var path = require('path')
var writeStream = require('flush-write-stream')
Expand All @@ -11,181 +12,181 @@ var hostname = os.hostname()

test('pino transform prettifies', function (t) {
t.plan(4)
var pretty = pino.pretty()
pretty.pipe(split(function (line) {
var prettier = pretty()
prettier.pipe(split(function (line) {
t.ok(line.match(/.*hello world$/), 'end of line matches')
t.ok(line.match(/(?!^)INFO.*/), 'includes level')
t.ok(line.indexOf('' + process.pid) > 0, 'includes pid')
t.ok(line.indexOf('' + hostname) > 0, 'includes hostname')
return line
}))
var instance = pino(pretty)
var instance = pino(prettier)

instance.info('hello world')
})

test('pino pretty moves level to start on flag', function (t) {
t.plan(4)
var pretty = pino.pretty({ levelFirst: true })
pretty.pipe(split(function (line) {
var prettier = pretty({ levelFirst: true })
prettier.pipe(split(function (line) {
t.ok(line.match(/.*hello world$/), 'end of line matches')
t.ok(line.match(/^INFO.*/), 'level is at start of line')
t.ok(line.indexOf('' + process.pid) > 0, 'includes pid')
t.ok(line.indexOf('' + hostname) > 0, 'includes hostname')
return line
}))
var instance = pino(pretty)
var instance = pino(prettier)

instance.info('hello world')
})

test('pino transform can just parse the dates', function (t) {
t.plan(1)
var pretty = pino.pretty({ timeTransOnly: true })
pretty.pipe(split(function (line) {
var prettier = pretty({ timeTransOnly: true })
prettier.pipe(split(function (line) {
var obj = JSON.parse(line)
t.ok(typeof obj.time === 'string', 'time is a string')
return line
}))
var instance = pino(pretty)
var instance = pino(prettier)

instance.info('hello world')
})

test('pino transform can format with a custom function', function (t) {
t.plan(1)
var pretty = pino.pretty({ formatter: function (line) {
var prettier = pretty({ formatter: function (line) {
return 'msg: ' + line.msg + ', foo: ' + line.foo
} })
pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
t.ok(line === 'msg: hello world, foo: bar', 'line matches')
return line
}))
var instance = pino(pretty)
var instance = pino(prettier)

instance.info({foo: 'bar'}, 'hello world')
})

test('pino transform prettifies Error', function (t) {
var pretty = pino.pretty()
var prettier = pretty()
var err = new Error('hello world')
var expected = err.stack.split('\n')
expected.unshift(err.message)

t.plan(expected.length)

pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
t.ok(line.indexOf(expected.shift()) >= 0, 'line matches')
return line
}))

var instance = pino(pretty)
var instance = pino(prettier)

instance.info(err)
})

test('pino transform preserve output if not valid JSON', function (t) {
t.plan(1)
var pretty = pino.pretty()
var prettier = pretty()
var lines = []
pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
lines.push(line)
return line
}))

pretty.write('this is not json\nit\'s just regular output\n')
pretty.end()
prettier.write('this is not json\nit\'s just regular output\n')
prettier.end()

t.deepEqual(lines, ['this is not json', 'it\'s just regular output'], 'preserved lines')
})

test('handles missing time', function (t) {
t.plan(1)
var pretty = pino.pretty()
var prettier = pretty()
var lines = []
pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
lines.push(line)
return line
}))

pretty.write('{"hello":"world"}')
pretty.end()
prettier.write('{"hello":"world"}')
prettier.end()

t.deepEqual(lines, ['{"hello":"world"}'], 'preserved lines')
})

test('pino transform prettifies properties', function (t) {
t.plan(1)
var pretty = pino.pretty()
var prettier = pretty()
var first = true
pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
if (first) {
first = false
} else {
t.equal(line, ' a: "b"', 'prettifies the line')
}
return line
}))
var instance = pino(pretty)
var instance = pino(prettier)

instance.info({ a: 'b' }, 'hello world')
})

test('pino transform treats the name with care', function (t) {
t.plan(1)
var pretty = pino.pretty()
pretty.pipe(split(function (line) {
var prettier = pretty()
prettier.pipe(split(function (line) {
t.ok(line.match(/\(matteo\/.*$/), 'includes the name')
return line
}))
var instance = pino({ name: 'matteo' }, pretty)
var instance = pino({ name: 'matteo' }, prettier)

instance.info('hello world')
})

test('handles `null` input', function (t) {
t.plan(1)
var pretty = pino.pretty()
pretty.pipe(split(function (line) {
var prettier = pretty()
prettier.pipe(split(function (line) {
t.is(line, 'null')
return line
}))
pretty.write('null')
pretty.end()
prettier.write('null')
prettier.end()
})

test('handles `undefined` input', function (t) {
t.plan(1)
var pretty = pino.pretty()
pretty.pipe(split(function (line) {
var prettier = pretty()
prettier.pipe(split(function (line) {
t.is(line, 'undefined')
return line
}))
pretty.write('undefined')
pretty.end()
prettier.write('undefined')
prettier.end()
})

test('handles `true` input', function (t) {
t.plan(1)
var pretty = pino.pretty()
pretty.pipe(split(function (line) {
var prettier = pretty()
prettier.pipe(split(function (line) {
t.is(line, 'true')
return line
}))
pretty.write('true')
pretty.end()
prettier.write('true')
prettier.end()
})

test('accept customLogLevvel', function (t) {
t.plan(1)
var pretty = pino.pretty()
var prettier = pretty()

pretty.pipe(split(function (line) {
prettier.pipe(split(function (line) {
t.ok(line.indexOf('USERLVL') > 0, 'include custom level')
return line
}))

var instance = pino({level: 'testCustom', levelVal: 35}, pretty)
var instance = pino({level: 'testCustom', levelVal: 35}, prettier)

instance.testCustom('test message')
})
Expand Down

0 comments on commit bb2aa9f

Please sign in to comment.