From d18367294a431348333bb48d2c1158af38cab72c Mon Sep 17 00:00:00 2001 From: Marcos Molina Date: Tue, 15 Aug 2023 00:15:27 +0300 Subject: [PATCH 1/2] added request id omit flag --- .../src/request-id/express/middleware.ts | 2 ++ .../request-id-express-middleware.test.ts | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/code-templates/libraries/request-context/src/request-id/express/middleware.ts b/src/code-templates/libraries/request-context/src/request-id/express/middleware.ts index ea45b3c6..3634fd83 100644 --- a/src/code-templates/libraries/request-context/src/request-id/express/middleware.ts +++ b/src/code-templates/libraries/request-context/src/request-id/express/middleware.ts @@ -14,6 +14,8 @@ export function addRequestId( res: ServerResponse, next: () => void ) { + if (process.env.SKIP_ADD_REQUEST_ID_MIDDLEWARE === 'true') return next(); + let requestId = req.headers[REQUEST_ID_HEADER]; if (!requestId) { diff --git a/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts b/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts index c4879aed..f6d15d49 100644 --- a/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts +++ b/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts @@ -4,6 +4,7 @@ import { AddressInfo } from 'net'; import axios from 'axios'; import { addRequestIdExpressMiddleware, context } from '../index'; import { REQUEST_ID_HEADER } from '../src/request-id/constant'; +import sinon from 'sinon'; let currentServer: Server; @@ -36,6 +37,8 @@ describe('Request ID express middleware', () => { currentServer = undefined; } + + sinon.restore(); }); describe('when the request ID already exists in the request header', () => { @@ -245,4 +248,28 @@ describe('Request ID express middleware', () => { }, }); }); + + test('when request ID middleware should be omited', async () => { + // Arrange + const client = await setupExpressServer((app) => { + app.use(addRequestIdExpressMiddleware); + + app.get('/', (req, res) => { + res.send({}); + }); + }); + sinon + .stub(process, 'env') + .value({ SKIP_ADD_REQUEST_ID_MIDDLEWARE: 'true' }); + + // Act + const response = await client.get('/'); + + // Assert + expect(response).toMatchObject({ + status: 200, + data: {}, + headers: {}, + }); + }); }); From dcd10718e89b75ea583322ae55ccccc8834ef2f8 Mon Sep 17 00:00:00 2001 From: Marcos Molina Date: Tue, 15 Aug 2023 00:22:14 +0300 Subject: [PATCH 2/2] moved sinon import --- .../libraries/request-context/test/request-context.test.ts | 2 +- .../request-context/test/request-id-express-middleware.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/code-templates/libraries/request-context/test/request-context.test.ts b/src/code-templates/libraries/request-context/test/request-context.test.ts index 9c9770f4..89e03822 100644 --- a/src/code-templates/libraries/request-context/test/request-context.test.ts +++ b/src/code-templates/libraries/request-context/test/request-context.test.ts @@ -1,5 +1,5 @@ -import sinon from 'sinon'; import { context } from '../index'; +import sinon from 'sinon'; describe('request-context', () => { test('When instantiating a new context with initial values, then should get back the context', () => { diff --git a/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts b/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts index f6d15d49..d41b5f5e 100644 --- a/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts +++ b/src/code-templates/libraries/request-context/test/request-id-express-middleware.test.ts @@ -2,9 +2,9 @@ import express, { Express } from 'express'; import { Server } from 'http'; import { AddressInfo } from 'net'; import axios from 'axios'; +import sinon from 'sinon'; import { addRequestIdExpressMiddleware, context } from '../index'; import { REQUEST_ID_HEADER } from '../src/request-id/constant'; -import sinon from 'sinon'; let currentServer: Server;