fastify
Version:
Fast and low overhead web framework, for Node.js
51 lines (40 loc) • 1.31 kB
JavaScript
const { test } = require('tap')
const Fastify = require('..')
test('encapsulates an error handler', async t => {
t.plan(3)
const fastify = Fastify()
fastify.register(async function (fastify) {
fastify.setErrorHandler(async function a (err) {
t.equal(err.message, 'kaboom')
throw new Error('caught')
})
fastify.get('/encapsulated', async () => { throw new Error('kaboom') })
})
fastify.setErrorHandler(async function b (err) {
t.equal(err.message, 'caught')
throw new Error('wrapped')
})
const res = await fastify.inject('/encapsulated')
t.equal(res.json().message, 'wrapped')
})
test('onError hook nested', async t => {
t.plan(4)
const fastify = Fastify()
fastify.register(async function (fastify) {
fastify.setErrorHandler(async function a (err) {
t.equal(err.message, 'kaboom')
throw new Error('caught')
})
fastify.get('/encapsulated', async () => { throw new Error('kaboom') })
})
fastify.setErrorHandler(async function b (err) {
t.equal(err.message, 'caught')
throw new Error('wrapped')
})
fastify.addHook('onError', async function (request, reply, err) {
t.equal(err.message, 'kaboom')
})
const res = await fastify.inject('/encapsulated')
t.equal(res.json().message, 'wrapped')
})