You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
5.1 KiB
217 lines
5.1 KiB
'use strict' |
|
|
|
var test = require('tap').test |
|
var os = require('os') |
|
var pino = require('../') |
|
var sink = require('./helper').sink |
|
var http = require('http') |
|
|
|
var pid = process.pid |
|
var hostname = os.hostname() |
|
|
|
test('http request support', function (t) { |
|
t.plan(3) |
|
|
|
var originalReq |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
delete chunk.time |
|
t.deepEqual(chunk, { |
|
pid: pid, |
|
hostname: hostname, |
|
level: 30, |
|
msg: 'my request', |
|
v: 1, |
|
req: { |
|
method: originalReq.method, |
|
url: originalReq.url, |
|
headers: originalReq.headers, |
|
remoteAddress: originalReq.connection.remoteAddress, |
|
remotePort: originalReq.connection.remotePort |
|
} |
|
}) |
|
cb() |
|
})) |
|
|
|
var server = http.createServer(function (req, res) { |
|
originalReq = req |
|
instance.info(req, 'my request') |
|
res.end('hello') |
|
}).listen(function (err) { |
|
t.error(err) |
|
t.teardown(server.close.bind(server)) |
|
|
|
http.get('http://localhost:' + server.address().port, function (res) { |
|
res.resume() |
|
}) |
|
}) |
|
}) |
|
|
|
test('http request support via serializer', function (t) { |
|
t.plan(3) |
|
|
|
var originalReq |
|
var instance = pino({ |
|
serializers: { |
|
req: pino.stdSerializers.req |
|
} |
|
}, sink(function (chunk, enc, cb) { |
|
t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
delete chunk.time |
|
t.deepEqual(chunk, { |
|
pid: pid, |
|
hostname: hostname, |
|
level: 30, |
|
msg: 'my request', |
|
v: 1, |
|
req: { |
|
method: originalReq.method, |
|
url: originalReq.url, |
|
headers: originalReq.headers, |
|
remoteAddress: originalReq.connection.remoteAddress, |
|
remotePort: originalReq.connection.remotePort |
|
} |
|
}) |
|
cb() |
|
})) |
|
|
|
var server = http.createServer(function (req, res) { |
|
originalReq = req |
|
instance.info({ req: req }, 'my request') |
|
res.end('hello') |
|
}).listen(function (err) { |
|
t.error(err) |
|
t.teardown(server.close.bind(server)) |
|
|
|
http.get('http://localhost:' + server.address().port, function (res) { |
|
res.resume() |
|
}) |
|
}) |
|
}) |
|
|
|
test('http response support', function (t) { |
|
t.plan(3) |
|
|
|
var originalRes |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
delete chunk.time |
|
t.deepEqual(chunk, { |
|
pid: pid, |
|
hostname: hostname, |
|
level: 30, |
|
msg: 'my response', |
|
v: 1, |
|
res: { |
|
statusCode: originalRes.statusCode, |
|
header: originalRes._header |
|
} |
|
}) |
|
cb() |
|
})) |
|
|
|
var server = http.createServer(function (req, res) { |
|
originalRes = res |
|
res.end('hello') |
|
instance.info(res, 'my response') |
|
}).listen(function (err) { |
|
t.error(err) |
|
t.teardown(server.close.bind(server)) |
|
|
|
http.get('http://localhost:' + server.address().port, function (res) { |
|
res.resume() |
|
}) |
|
}) |
|
}) |
|
|
|
test('http response support via a serializer', function (t) { |
|
t.plan(3) |
|
|
|
var originalRes |
|
var instance = pino({ |
|
serializers: { |
|
res: pino.stdSerializers.res |
|
} |
|
}, sink(function (chunk, enc, cb) { |
|
t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
delete chunk.time |
|
t.deepEqual(chunk, { |
|
pid: pid, |
|
hostname: hostname, |
|
level: 30, |
|
msg: 'my response', |
|
v: 1, |
|
res: { |
|
statusCode: originalRes.statusCode, |
|
header: originalRes._header |
|
} |
|
}) |
|
cb() |
|
})) |
|
|
|
var server = http.createServer(function (req, res) { |
|
originalRes = res |
|
res.end('hello') |
|
instance.info({ res: res }, 'my response') |
|
}).listen(function (err) { |
|
t.error(err) |
|
t.teardown(server.close.bind(server)) |
|
|
|
http.get('http://localhost:' + server.address().port, function (res) { |
|
res.resume() |
|
}) |
|
}) |
|
}) |
|
|
|
test('slowtime', function (t) { |
|
var instance = pino({slowtime: true}, |
|
sink(function (chunk, enc, cb) { |
|
t.ok(Date.parse(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
t.end() |
|
})) |
|
|
|
instance.info('hello world') |
|
}) |
|
|
|
test('http request support via serializer in a child', function (t) { |
|
t.plan(3) |
|
|
|
var originalReq |
|
var instance = pino({ |
|
serializers: { |
|
req: pino.stdSerializers.req |
|
} |
|
}, sink(function (chunk, enc, cb) { |
|
t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') |
|
delete chunk.time |
|
t.deepEqual(chunk, { |
|
pid: pid, |
|
hostname: hostname, |
|
level: 30, |
|
msg: 'my request', |
|
v: 1, |
|
req: { |
|
method: originalReq.method, |
|
url: originalReq.url, |
|
headers: originalReq.headers, |
|
remoteAddress: originalReq.connection.remoteAddress, |
|
remotePort: originalReq.connection.remotePort |
|
} |
|
}) |
|
cb() |
|
})) |
|
|
|
var server = http.createServer(function (req, res) { |
|
originalReq = req |
|
var child = instance.child({ req: req }) |
|
child.info('my request') |
|
res.end('hello') |
|
}).listen(function (err) { |
|
t.error(err) |
|
t.teardown(server.close.bind(server)) |
|
|
|
http.get('http://localhost:' + server.address().port, function (res) { |
|
res.resume() |
|
}) |
|
}) |
|
})
|
|
|