From be587bfe9f3c1f7ec0fe7589cfc03000a7f26b7c Mon Sep 17 00:00:00 2001 From: Ramneet04 Date: Tue, 24 Dec 2024 15:44:00 +0530 Subject: [PATCH 1/4] file name changed --- .../{dateTimeMiddleware.test.ts => dateTimeMiddleware.spec.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/utils/timezoneUtils/{dateTimeMiddleware.test.ts => dateTimeMiddleware.spec.ts} (100%) diff --git a/src/utils/timezoneUtils/dateTimeMiddleware.test.ts b/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts similarity index 100% rename from src/utils/timezoneUtils/dateTimeMiddleware.test.ts rename to src/utils/timezoneUtils/dateTimeMiddleware.spec.ts From c4307d6019607108739a3f246d9eb10f2fc53e7d Mon Sep 17 00:00:00 2001 From: Ramneet04 Date: Tue, 24 Dec 2024 19:27:30 +0530 Subject: [PATCH 2/4] migrated to vitest from jest --- .../timezoneUtils/dateTimeMiddleware.spec.ts | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts b/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts index b14702b546..19b5410d01 100644 --- a/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts +++ b/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts @@ -3,6 +3,7 @@ import type { Operation, FetchResult } from '@apollo/client/core'; import { Observable } from '@apollo/client/core'; import { gql } from '@apollo/client'; import type { DocumentNode } from 'graphql'; +import { describe, it, expect, vi } from 'vitest'; const DUMMY_QUERY: DocumentNode = gql` query GetDummyData { @@ -19,12 +20,12 @@ describe('Date Time Middleware Tests', () => { query: DUMMY_QUERY, operationName: 'GetDummyData', variables: { startDate: '2023-09-01', startTime: '12:00:00' }, - getContext: jest.fn(() => ({})), - setContext: jest.fn(), + getContext: vi.fn(() => ({})), + setContext: vi.fn(), extensions: {}, }; - const forward = jest.fn( + const forward = vi.fn( (op) => new Observable((observer) => { expect(op.variables['startDate']).toBe('2023-09-01'); @@ -55,12 +56,12 @@ describe('Date Time Middleware Tests', () => { query: DUMMY_QUERY, operationName: 'GetDummyData', variables: {}, - getContext: jest.fn(() => ({})), - setContext: jest.fn(), + getContext: vi.fn(() => ({})), + setContext: vi.fn(), extensions: {}, }; - const forward = jest.fn( + const forward = vi.fn( () => new Observable((observer) => { observer.next(testResponse); @@ -98,16 +99,16 @@ describe('Date Time Middleware Tests', () => { query: DUMMY_QUERY, operationName: 'GetDummyData', variables: { startDate: 'not-a-date', startTime: '25:99:99' }, - getContext: jest.fn(() => ({})), - setContext: jest.fn(), + getContext: vi.fn(() => ({})), + setContext: vi.fn(), extensions: {}, }; - const forward = jest.fn( + const forward = vi.fn( (op) => new Observable((observer) => { - expect(op.variables['startDate']).toBe('not-a-date'); - expect(op.variables['startTime']).toBe('25:99:99'); + expect(op.variables['startDate']).toBe('Invalid Date'); + expect(op.variables['startTime']).toBe('Invalid Date'); observer.complete(); }), ); @@ -130,12 +131,12 @@ describe('Date Time Middleware Tests', () => { query: DUMMY_QUERY, operationName: 'GetDummyData', variables: {}, - getContext: jest.fn(() => ({})), - setContext: jest.fn(), + getContext: vi.fn(() => ({})), + setContext: vi.fn(), extensions: {}, }; - const forward = jest.fn( + const forward = vi.fn( () => new Observable((observer) => { observer.next(testResponse); @@ -188,12 +189,12 @@ describe('Date Time Middleware Tests', () => { }, }, }, - getContext: jest.fn(() => ({})), - setContext: jest.fn(), + getContext: vi.fn(() => ({})), + setContext: vi.fn(), extensions: {}, }; - const forward = jest.fn( + const forward = vi.fn( (op) => new Observable((observer) => { expect(op.variables.event.startDate).toBe('2023-10-01'); From 8ed38db700695b0f5c1741fa11fd3a1ff60d5fbf Mon Sep 17 00:00:00 2001 From: Ramneet04 Date: Wed, 25 Dec 2024 13:55:27 +0530 Subject: [PATCH 3/4] handled the split function correctly --- .../timezoneUtils/dateTimeMiddleware.spec.ts | 4 +-- src/utils/timezoneUtils/dateTimeMiddleware.ts | 26 ++++++++++++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts b/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts index 19b5410d01..ead19444c3 100644 --- a/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts +++ b/src/utils/timezoneUtils/dateTimeMiddleware.spec.ts @@ -107,8 +107,8 @@ describe('Date Time Middleware Tests', () => { const forward = vi.fn( (op) => new Observable((observer) => { - expect(op.variables['startDate']).toBe('Invalid Date'); - expect(op.variables['startTime']).toBe('Invalid Date'); + expect(op.variables['startDate']).toBe('not-a-date'); + expect(op.variables['startTime']).toBe('25:99:99'); observer.complete(); }), ); diff --git a/src/utils/timezoneUtils/dateTimeMiddleware.ts b/src/utils/timezoneUtils/dateTimeMiddleware.ts index 70fc20a026..7be22c7eea 100644 --- a/src/utils/timezoneUtils/dateTimeMiddleware.ts +++ b/src/utils/timezoneUtils/dateTimeMiddleware.ts @@ -14,6 +14,13 @@ const combineDateTime = (date: string, time: string): string => { const splitDateTime = (dateTimeStr: string): { date: string; time: string } => { const dateTime = dayjs.utc(dateTimeStr); + if (!dateTime.isValid()) { + const [date, time] = dateTimeStr.split('T'); + return { + date: date, + time: time, + }; + } return { date: dateTime.format('YYYY-MM-DD'), time: dateTime.format('HH:mm:ss.SSS[Z]'), @@ -21,18 +28,17 @@ const splitDateTime = (dateTimeStr: string): { date: string; time: string } => { }; const convertUTCToLocal = (dateStr: string): string => { - if (dayjs(dateStr).isValid()) { - return dayjs.utc(dateStr).local().format('YYYY-MM-DDTHH:mm:ss.SSS'); + if (!dayjs(dateStr).isValid()) { + return dateStr; } - return dateStr; + return dayjs.utc(dateStr).local().format('YYYY-MM-DDTHH:mm:ss.SSS'); }; const convertLocalToUTC = (dateStr: string): string => { - if (dayjs(dateStr).isValid()) { - const result = dayjs(dateStr).utc().format('YYYY-MM-DDTHH:mm:ss.SSS[Z]'); - return result; + if (!dayjs(dateStr).isValid()) { + return dateStr; // Leave the invalid value unchanged } - return dateStr; + return dayjs(dateStr).utc().format('YYYY-MM-DDTHH:mm:ss.SSS[Z]'); }; const traverseAndConvertDates = ( @@ -54,8 +60,8 @@ const traverseAndConvertDates = ( ); const convertedDateTime = convertFn(combinedDateTime); const { date, time } = splitFn(convertedDateTime); - obj[dateField] = date; // Restore the original date field - obj[timeField] = time; // Restore the original time field + obj[dateField] = date; + obj[timeField] = time; } }); @@ -69,7 +75,7 @@ const traverseAndConvertDates = ( value as Record, convertFn, splitFn, - ); // Recursive call for nested objects/arrays + ); } }); }; From 0bce5addbd3be613d4841bb1239d3a81d452607f Mon Sep 17 00:00:00 2001 From: Ramneet04 Date: Wed, 25 Dec 2024 15:18:44 +0530 Subject: [PATCH 4/4] added comments that were missing --- src/utils/timezoneUtils/dateTimeMiddleware.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/timezoneUtils/dateTimeMiddleware.ts b/src/utils/timezoneUtils/dateTimeMiddleware.ts index 7be22c7eea..f3be59bacb 100644 --- a/src/utils/timezoneUtils/dateTimeMiddleware.ts +++ b/src/utils/timezoneUtils/dateTimeMiddleware.ts @@ -60,8 +60,8 @@ const traverseAndConvertDates = ( ); const convertedDateTime = convertFn(combinedDateTime); const { date, time } = splitFn(convertedDateTime); - obj[dateField] = date; - obj[timeField] = time; + obj[dateField] = date; // Restore the original date field + obj[timeField] = time; // Restore the original time field } }); @@ -75,7 +75,7 @@ const traverseAndConvertDates = ( value as Record, convertFn, splitFn, - ); + ); // Recursive call for nested objects/arrays } }); };