fastify
Version:
Fast and low overhead web framework, for Node.js
36 lines (29 loc) • 1.07 kB
JavaScript
const diagnostics = require('node:diagnostics_channel')
const { test } = require('node:test')
require('../../lib/hooks').onSendHookRunner = function Stub () {}
const Request = require('../../lib/request')
const Reply = require('../../lib/reply')
const symbols = require('../../lib/symbols.js')
const { preHandlerCallback } = require('../../lib/handleRequest')[Symbol.for('internals')]
test('diagnostics channel handles an error before calling context handler', t => {
t.plan(3)
let callOrder = 0
diagnostics.subscribe('tracing:fastify.request.handler:start', (msg) => {
t.assert.strictEqual(callOrder++, 0)
})
diagnostics.subscribe('tracing:fastify.request.handler:error', (msg) => {
t.assert.strictEqual(callOrder++, 1)
t.assert.strictEqual(msg.error.message, 'oh no')
})
const error = new Error('oh no')
const request = new Request()
const reply = new Reply({}, request)
request[symbols.kRouteContext] = {
config: {
url: '/foo',
method: 'GET'
}
}
preHandlerCallback(error, request, reply)
})