diff --git a/src/server.ts b/src/server.ts index a0f34c9..987cd5b 100644 --- a/src/server.ts +++ b/src/server.ts @@ -55,7 +55,13 @@ const getRequestListener = (fetchCallback: FetchCallback) => { init['body'] = buffer } - const res = (await fetchCallback(new Request(url.toString(), init))) as Response + let res: Response + + try { + res = (await fetchCallback(new Request(url.toString(), init))) as Response + } catch { + res = new Response(null, { status: 500 }) + } const contentType = res.headers.get('content-type') || '' diff --git a/test/server.test.ts b/test/server.test.ts index a8f963b..e1e01dd 100644 --- a/test/server.test.ts +++ b/test/server.test.ts @@ -201,6 +201,11 @@ describe('Error handling', () => { expect(res.status).toBe(500) expect(res.text).toBe('Custom Error!') }) + + it('Should return 500 response - PURGE method', async () => { + const res = await request(server).purge('/') + expect(res.status).toBe(500) + }) }) describe('Basic Auth Middleware', () => {