From 4c149f98e3ad5023d15c3d79e38665d1e2da34ef Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Thu, 12 Mar 2026 09:32:07 +0530 Subject: [PATCH 1/4] SK-2610 fix the type gap to pass the nested objects --- src/utils/common/index.ts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/utils/common/index.ts b/src/utils/common/index.ts index 26baa018..ecf72435 100644 --- a/src/utils/common/index.ts +++ b/src/utils/common/index.ts @@ -291,6 +291,8 @@ export interface DeleteErrorRecords { error: ErrorRecord, } +export type Style = string | { [key: string]: Style }; + export interface ContainerOptions { layout: number[], styles?: InputStyles, // check implementation below @@ -298,22 +300,22 @@ export interface ContainerOptions { } export interface ErrorTextStyles { - base?: Record, - global?: Record, + base?: Record, + global?: Record, } export interface LabelStyles extends ErrorTextStyles { - focus?: Record, - requiredAsterisk?: Record, + focus?: Record, + requiredAsterisk?: Record, } export interface InputStyles extends ErrorTextStyles { - focus?: Record, - complete?: Record, - empty?: Record, - invalid?: Record, - cardIcon?: Record, - copyIcon?: Record, + focus?: Record, + complete?: Record, + empty?: Record, + invalid?: Record, + cardIcon?: Record, + copyIcon?: Record, } export interface CollectElementOptions { From 9c7c544dedf697e49fda6ae57dc659e9011ab89b Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 25 Mar 2026 13:52:44 +0530 Subject: [PATCH 2/4] SK-2675 fix the date validation --- src/utils/validators/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils/validators/index.ts b/src/utils/validators/index.ts index f4ce7a88..48f681cd 100644 --- a/src/utils/validators/index.ts +++ b/src/utils/validators/index.ts @@ -78,6 +78,8 @@ export const validateExpiryDate = (date: string, format: string) => { if (!date.includes('/')) return false; const { month, year } = getYearAndMonthBasedOnFormat(date, format); if (format.endsWith('YYYY') && year.toString().length !== 4) { return false; } + const monthNum = Number(month); + if (monthNum < 1 || monthNum > 12) { return false; } const expiryDate = new Date(Number(year), Number(month), 0); expiryDate.setHours(23, 59, 59, 999); const today = new Date(); @@ -85,7 +87,6 @@ export const validateExpiryDate = (date: string, format: string) => { const maxDate = new Date(); maxDate.setFullYear(today.getFullYear() + 50); maxDate.setMonth(today.getMonth() + 1); - return expiryDate >= today && expiryDate <= maxDate; }; From bdb7ae7735828078d8797d771a3f9493434546dc Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 25 Mar 2026 14:07:18 +0530 Subject: [PATCH 3/4] SK-2675 add unit test for fixing the date validation --- tests/utils/validators.test.js | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/utils/validators.test.js b/tests/utils/validators.test.js index c67b5b7e..c1ef6763 100644 --- a/tests/utils/validators.test.js +++ b/tests/utils/validators.test.js @@ -66,6 +66,56 @@ describe('Validation card number and Expiry Date', () => { expect(validateExpiryDate(expiryDate, "MM/YY")).toBe(false); }); + test('validate expiry date with month 00, MM/YY', () => { + const expiryDate = '00/45'; + expect(validateExpiryDate(expiryDate, "MM/YY")).toBe(false); + }); + + test('validate expiry date with month 13, MM/YY', () => { + const expiryDate = '13/45'; + expect(validateExpiryDate(expiryDate, "MM/YY")).toBe(false); + }); + + test('validate expiry date with month 00, YY/MM', () => { + const expiryDate = '45/00'; + expect(validateExpiryDate(expiryDate, "YY/MM")).toBe(false); + }); + + test('validate expiry date with month 13, YY/MM', () => { + const expiryDate = '45/13'; + expect(validateExpiryDate(expiryDate, "YY/MM")).toBe(false); + }); + + test('validate expiry date with month 00, YYYY/MM', () => { + const expiryDate = '2045/00'; + expect(validateExpiryDate(expiryDate, "YYYY/MM")).toBe(false); + }); + + test('validate expiry date with month 13, YYYY/MM', () => { + const expiryDate = '2045/13'; + expect(validateExpiryDate(expiryDate, "YYYY/MM")).toBe(false); + }); + + test('validate older expiry date with month 00, YYYY/MM', () => { + const expiryDate = '2024/00'; + expect(validateExpiryDate(expiryDate, "YYYY/MM")).toBe(false); + }); + + test('validate older expiry date with month 13, YYYY/MM', () => { + const expiryDate = '2024/13'; + expect(validateExpiryDate(expiryDate, "YYYY/MM")).toBe(false); + }); + + test('validate expiry date with month 00, MM/YYYY', () => { + const expiryDate = '00/2045'; + expect(validateExpiryDate(expiryDate, "MM/YYYY")).toBe(false); + }); + + test('validate expiry date with month 13, MM/YYYY', () => { + const expiryDate = '13/2045'; + expect(validateExpiryDate(expiryDate, "MM/YYYY")).toBe(false); + }); + test('validate expired date, MM/YY', () => { const currentDate = new Date(); const expiryDate = `${currentDate.getMonth()}/${currentDate.getFullYear().toString().slice(-2)}`; From f7c95753bf5ba6e5a1d599fe35a494b6b6a7339c Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 25 Mar 2026 14:26:08 +0530 Subject: [PATCH 4/4] SK-2675 undo style change --- src/utils/common/index.ts | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/utils/common/index.ts b/src/utils/common/index.ts index ecf72435..26baa018 100644 --- a/src/utils/common/index.ts +++ b/src/utils/common/index.ts @@ -291,8 +291,6 @@ export interface DeleteErrorRecords { error: ErrorRecord, } -export type Style = string | { [key: string]: Style }; - export interface ContainerOptions { layout: number[], styles?: InputStyles, // check implementation below @@ -300,22 +298,22 @@ export interface ContainerOptions { } export interface ErrorTextStyles { - base?: Record, - global?: Record, + base?: Record, + global?: Record, } export interface LabelStyles extends ErrorTextStyles { - focus?: Record, - requiredAsterisk?: Record, + focus?: Record, + requiredAsterisk?: Record, } export interface InputStyles extends ErrorTextStyles { - focus?: Record, - complete?: Record, - empty?: Record, - invalid?: Record, - cardIcon?: Record, - copyIcon?: Record, + focus?: Record, + complete?: Record, + empty?: Record, + invalid?: Record, + cardIcon?: Record, + copyIcon?: Record, } export interface CollectElementOptions {