From 179ecbcb3b655fbb0623533e3825b41914ca9c60 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 22:42:09 +0200 Subject: [PATCH] Resolve validation error caused by empty strings --- libs/common/src/lib/helper.spec.ts | 58 ++++++++++++++++++++++++++++++ libs/common/src/lib/helper.ts | 12 ++++--- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index d33f104522..7589347240 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -1,6 +1,8 @@ import { extractNumberFromString, getNumberFormatGroup, + getStringOrNull, + getStringOrUndefined, isCurrency, isCurrencySymbol } from '@ghostfolio/common/helper'; @@ -139,6 +141,62 @@ describe('Helper', () => { }); }); + describe('Get string or null', () => { + it('String', () => { + expect(getStringOrNull('https://ghostfol.io')).toEqual( + 'https://ghostfol.io' + ); + }); + + it('String (with spaces)', () => { + expect(getStringOrNull(' https://ghostfol.io ')).toEqual( + 'https://ghostfol.io' + ); + }); + + it('Empty string', () => { + expect(getStringOrNull('')).toEqual(null); + }); + + it('Blank string', () => { + expect(getStringOrNull(' ')).toEqual(null); + }); + + it('Null', () => { + expect(getStringOrNull(null)).toEqual(null); + }); + + it('Undefined', () => { + expect(getStringOrNull(undefined)).toEqual(null); + }); + }); + + describe('Get string or undefined', () => { + it('String', () => { + expect(getStringOrUndefined('de-DE')).toEqual('de-DE'); + }); + + it('String (with spaces)', () => { + expect(getStringOrUndefined(' de-DE ')).toEqual('de-DE'); + }); + + it('Empty string', () => { + expect(getStringOrUndefined('')).toEqual(undefined); + }); + + it('Blank string', () => { + expect(getStringOrUndefined(' ')).toEqual(undefined); + }); + + it('Null', () => { + expect(getStringOrUndefined(null)).toEqual(undefined); + }); + + it('Undefined', () => { + expect(getStringOrUndefined(undefined)).toEqual(undefined); + }); + }); + describe('Is currency', () => { it('ISO 4217 currency code', () => { expect(isCurrency('USD')).toEqual(true); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 4c02f86dc3..7e482838c0 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -398,16 +398,20 @@ export function getStartOfUtcDate(aDate: Date) { } export function getStringOrNull(aString: string | null | undefined) { - if (aString) { - return aString; + const trimmedString = aString?.trim(); + + if (trimmedString) { + return trimmedString; } return null; } export function getStringOrUndefined(aString: string | null | undefined) { - if (aString) { - return aString; + const trimmedString = aString?.trim(); + + if (trimmedString) { + return trimmedString; } return undefined;