From d42685025da89a62a32c948bbd736d2a1e9e9ab1 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 14 Oct 2026 17:55:47 +0200 Subject: [PATCH] Avoid exception in constraint for value which is not a string --- .../lib/validator-constraints/is-not-in-the-future.spec.ts | 6 ++++++ .../src/lib/validator-constraints/is-not-in-the-future.ts | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libs/common/src/lib/validator-constraints/is-not-in-the-future.spec.ts b/libs/common/src/lib/validator-constraints/is-not-in-the-future.spec.ts index 4b9de73837..4ab85b2942 100644 --- a/libs/common/src/lib/validator-constraints/is-not-in-the-future.spec.ts +++ b/libs/common/src/lib/validator-constraints/is-not-in-the-future.spec.ts @@ -26,4 +26,10 @@ describe('IsNotInTheFutureConstraint', () => { it('Refuses a date in the future', () => { expect(constraint.validate('2026-09-05')).toBe(false); }); + + it('Leaves a value which is not a string to IsISO8601', () => { + expect(constraint.validate(undefined)).toBe(true); + expect(constraint.validate(null)).toBe(true); + expect(constraint.validate(123)).toBe(true); + }); }); diff --git a/libs/common/src/lib/validator-constraints/is-not-in-the-future.ts b/libs/common/src/lib/validator-constraints/is-not-in-the-future.ts index 6de91e9e3f..0ea6685e45 100644 --- a/libs/common/src/lib/validator-constraints/is-not-in-the-future.ts +++ b/libs/common/src/lib/validator-constraints/is-not-in-the-future.ts @@ -15,7 +15,12 @@ export class IsNotInTheFutureConstraint implements ValidatorConstraintInterface return '$property must not be a date in the future'; } - public validate(aDate: string) { + public validate(aDate: unknown) { + // IsISO8601 refuses a value which is not a string + if (typeof aDate !== 'string') { + return true; + } + return !isAccountBalanceInFuture({ date: resetHours(parseISO(aDate)) }); } }