From cc24a3e21d987190de269a183a8a215770ed2447 Mon Sep 17 00:00:00 2001 From: Eric Lim Date: Thu, 6 Mar 2025 08:51:36 +0100 Subject: [PATCH] refactor(api): improve extract timestamp from request by using request.info.received instead of x-request-start header --- .../utils/request-response-utils.js | 2 +- .../utils/request-response-utils_test.js | 52 +++++-------------- 2 files changed, 14 insertions(+), 40 deletions(-) diff --git a/api/src/shared/infrastructure/utils/request-response-utils.js b/api/src/shared/infrastructure/utils/request-response-utils.js index 24ad7e2e1b0..2cd4399a358 100644 --- a/api/src/shared/infrastructure/utils/request-response-utils.js +++ b/api/src/shared/infrastructure/utils/request-response-utils.js @@ -42,7 +42,7 @@ function extractLocaleFromRequest(request) { } function extractTimestampFromRequest(request) { - return request.headers?.['X-Request-Start'] ?? new Date().getTime(); + return request.info.received; } export { diff --git a/api/tests/shared/unit/infrastructure/utils/request-response-utils_test.js b/api/tests/shared/unit/infrastructure/utils/request-response-utils_test.js index 582e06b59bb..0c4458e08a7 100644 --- a/api/tests/shared/unit/infrastructure/utils/request-response-utils_test.js +++ b/api/tests/shared/unit/infrastructure/utils/request-response-utils_test.js @@ -5,7 +5,7 @@ import { extractTimestampFromRequest, extractUserIdFromRequest, } from '../../../../../src/shared/infrastructure/utils/request-response-utils.js'; -import { expect, generateAuthenticatedUserRequestHeaders, sinon } from '../../../../test-helper.js'; +import { expect, generateAuthenticatedUserRequestHeaders } from '../../../../test-helper.js'; const { ENGLISH_SPOKEN, FRENCH_FRANCE, FRENCH_SPOKEN } = LOCALE; @@ -84,46 +84,20 @@ describe('Unit | Utils | Request Utils', function () { }); describe('#extractTimestampFromRequest', function () { - context('when "X-Request-Start" header exist', function () { - it('returns the value of the header', function () { - // given - const startDateTimestamp = new Date('2025-01-01').getTime(); - const request = { - headers: { - 'X-Request-Start': startDateTimestamp, - }, - }; - - // when - const timestamp = extractTimestampFromRequest(request); - - // then - expect(timestamp).to.equal(startDateTimestamp); - }); - }); - - context('when "X-Request-Start" header does not exist', function () { - let clock, now; - - beforeEach(function () { - now = new Date('2023-09-12'); - clock = sinon.useFakeTimers({ now, toFake: ['Date'] }); - }); - - afterEach(function () { - clock.restore(); - }); - - it('returns a new date in timestamp', function () { - // given - const request = {}; + it('returns the value of attribute "request.info.received"', function () { + // given + const startDateTimestamp = new Date('2025-01-01').getTime(); + const request = { + info: { + received: startDateTimestamp, + }, + }; - // when - const timestamp = extractTimestampFromRequest(request); + // when + const timestamp = extractTimestampFromRequest(request); - // then - expect(timestamp).to.equal(now.getTime()); - }); + // then + expect(timestamp).to.equal(startDateTimestamp); }); }); });