From 9a3b21ce76d9a63095915304fdfabacb69974e28 Mon Sep 17 00:00:00 2001 From: Robin Tail Date: Tue, 7 May 2024 20:14:53 +0200 Subject: [PATCH] Avoid using parsers for OPTIONS method. --- src/routing.ts | 9 +++++---- tests/unit/server.spec.ts | 10 +++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/routing.ts b/src/routing.ts index 1277b8c0f..d49b19bb1 100644 --- a/src/routing.ts +++ b/src/routing.ts @@ -28,10 +28,11 @@ export const initRouting = ({ routing, hasCors: !!config.cors, onEndpoint: (endpoint, path, method, siblingMethods) => { - // @todo skip for "options" method? - const middlewares = parsers?.[endpoint.getRequestType()] || []; - if (middlewares.length) { - app.use(path, middlewares); + if (method !== "options") { + const middlewares = parsers?.[endpoint.getRequestType()] || []; + if (middlewares.length) { + app.use(path, middlewares); + } } app[method](path, async (request, response) => { const logger = config.childLoggerProvider diff --git a/tests/unit/server.spec.ts b/tests/unit/server.spec.ts index c01e47832..cdb84e021 100644 --- a/tests/unit/server.spec.ts +++ b/tests/unit/server.spec.ts @@ -63,7 +63,7 @@ describe("Server", () => { await createServer(configMock, routingMock); expect(appMock).toBeTruthy(); expect(appMock.disable).toHaveBeenCalledWith("x-powered-by"); - expect(appMock.use).toHaveBeenCalledTimes(5); + expect(appMock.use).toHaveBeenCalledTimes(4); expect(appMock.use.mock.calls[0]).toEqual([ "/v1/test", [expressJsonMock], @@ -116,7 +116,7 @@ describe("Server", () => { expect(logger).toEqual(customLogger); expect(app).toEqual(appMock); expect(appMock).toBeTruthy(); - expect(appMock.use).toHaveBeenCalledTimes(5); + expect(appMock.use).toHaveBeenCalledTimes(4); expect(appMock.use.mock.calls[0]).toEqual([ "/v1/test", [configMock.server.jsonParser], @@ -200,7 +200,7 @@ describe("Server", () => { }, }; await createServer(configMock, routingMock); - expect(appMock.use).toHaveBeenCalledTimes(5); + expect(appMock.use).toHaveBeenCalledTimes(4); expect(compressionMock).toHaveBeenCalledTimes(1); expect(compressionMock).toHaveBeenCalledWith(undefined); }); @@ -235,7 +235,7 @@ describe("Server", () => { }, }; await createServer(configMock, routingMock); - expect(appMock.use).toHaveBeenCalledTimes(4); + expect(appMock.use).toHaveBeenCalledTimes(3); expect(appMock.use.mock.calls[0]).toEqual([ "/v1/test", [beforeUpload, uploader, expect.any(Function)], // 3rd: createUploadFailueHandler() @@ -271,7 +271,7 @@ describe("Server", () => { }, }; await createServer(configMock, routingMock); - expect(appMock.use).toHaveBeenCalledTimes(4); + expect(appMock.use).toHaveBeenCalledTimes(3); expect(appMock.use.mock.calls[0]).toEqual([ "/v1/test", [rawParserMock, rawMover],