UNPKG

@p-j/eapi-middleware-errorhandler

Version:

An Error Handler middleware to work within an EAPI app. Check worker-eapi-template for context.

51 lines 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const withErrorHandler_1 = require("./withErrorHandler"); describe('withErrorHandler', () => { let successFn, errorFn, forwardFn, error; beforeEach(() => { error = new Error(); successFn = jest.fn(() => 'hello'); errorFn = jest.fn(() => { throw error; }); forwardFn = jest.fn(); }); it('to not do anything if the passed function succed', async () => { const request = new Request('https://example.com'); const event = new FetchEvent('fetch', { request }); const requestHandler = (0, withErrorHandler_1.withErrorHandler)()(successFn); const response = await requestHandler({ event, request, params: {} }); expect(successFn.mock.calls.length).toBe(1); expect(response).toBe('hello'); }); it('produce an empty 500 response in case of failure', async () => { const request = new Request('https://example.com'); const event = new FetchEvent('fetch', { request }); const requestHandler = (0, withErrorHandler_1.withErrorHandler)()(errorFn); const response = await requestHandler({ event, request, params: {} }); expect(errorFn.mock.calls.length).toBe(1); expect(response.status).toBe(500); expect(response.body).toBe(null); }); it('produce a detailed 500 response in case of failure & debug=true is in the URL', async () => { const request = new Request('https://example.com?debug=true'); const event = new FetchEvent('fetch', { request }); const requestHandler = (0, withErrorHandler_1.withErrorHandler)({ enableDebug: true })(errorFn); const response = await requestHandler({ event, request, params: {} }); expect(errorFn.mock.calls.length).toBe(1); expect(response.status).toBe(500); expect(await response.text()).toBe(error.stack); }); it('call the forward function when given', async () => { const request = new Request('https://example.com'); const event = new FetchEvent('fetch', { request }); const requestHandler = (0, withErrorHandler_1.withErrorHandler)({ forwardError: forwardFn })(errorFn); const response = await requestHandler({ event, request, params: {} }); expect(errorFn.mock.calls.length).toBe(1); expect(forwardFn.mock.calls.length).toBe(1); expect(response.status).toBe(500); expect(response.body).toBe(null); }); }); //# sourceMappingURL=withErrorHandler.test.js.map