Skip to content

Events not emitted when route handler throws #3330

@hueniverse

Description

@hueniverse
            const server = new Hapi.Server({ debug: false });
            server.connection();

            const updates = [];
            const test = function (srv, options, next) {

                srv.on('log', (event, tags) => updates.push(event.tags));
                srv.on('response', (request) => updates.push('response'));
                srv.on('request-error', (request, err) => updates.push('request-error'));

                return next();
            };

            test.attributes = {
                name: 'test'
            };

            server.route({
                method: 'GET',
                path: '/',
                handler: function (request, reply) {

                    request.server.log('1');
                    throw new Error('2');
                }
            });

            server.register(test, (err) => {

                expect(err).to.not.exist();
                server.start((err) => {

                    expect(err).to.not.exist();
                    server.inject('/', (res) => {

                        expect(res.statusCode).to.equal(500);
                        expect(updates).to.equal([['1'], 'request-error', 'response']);
                        server.stop(done);
                    });
                });
            });
        });

Metadata

Metadata

Assignees

Labels

bugBug or defect

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions