diff --git a/src/listener.ts b/src/listener.ts index 2f266d6..8e92635 100644 --- a/src/listener.ts +++ b/src/listener.ts @@ -224,7 +224,7 @@ export const getRequestListener = ( } try { - return responseViaResponseObject(res, outgoing, options) + return await responseViaResponseObject(res, outgoing, options) } catch (e) { return handleResponseError(e, outgoing) } diff --git a/test/listener.test.ts b/test/listener.test.ts index 1f20892..bbb8316 100644 --- a/test/listener.test.ts +++ b/test/listener.test.ts @@ -64,6 +64,21 @@ describe('Invalid request', () => { expect(res.status).toBe(400) }) }) + + describe('malformed body response', () => { + const malformedResponse = { + body: 'content', + } + const requestListener = getRequestListener(() => malformedResponse, { + hostname: 'example.com', + }) + const server = createServer(requestListener) + + it('Should return a 500 for a malformed response', async () => { + const res = await request(server).get('/').send() + expect(res.status).toBe(500) + }) + }) }) describe('Error handling - sync fetchCallback', () => {