From 023b9e2ad6c5d54fc8ec22eb3d2d762d1455145d Mon Sep 17 00:00:00 2001 From: dbt-bossert <133752347+dbt-bossert@users.noreply.github.com> Date: Wed, 21 May 2025 10:21:44 +0200 Subject: [PATCH] Fix stringToPath handling of empty strings --- src/utils/pathUtils.test.ts | 19 +++++++++++++++++++ src/utils/pathUtils.ts | 8 +++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/utils/pathUtils.test.ts diff --git a/src/utils/pathUtils.test.ts b/src/utils/pathUtils.test.ts new file mode 100644 index 0000000..1068c76 --- /dev/null +++ b/src/utils/pathUtils.test.ts @@ -0,0 +1,19 @@ +import { stringToPath, pathToString } from './pathUtils'; + +describe('pathUtils', () => { + describe('stringToPath', () => { + it('returns empty array for empty string', () => { + expect(stringToPath('')).toEqual([]); + }); + + it('converts dotted string to number array', () => { + expect(stringToPath('1.2.3')).toEqual([1, 2, 3]); + }); + }); + + describe('pathToString', () => { + it('converts number array to dotted string', () => { + expect(pathToString([1, 2, 3])).toBe('1.2.3'); + }); + }); +}); diff --git a/src/utils/pathUtils.ts b/src/utils/pathUtils.ts index 7aa3a51..b5684b5 100644 --- a/src/utils/pathUtils.ts +++ b/src/utils/pathUtils.ts @@ -51,7 +51,13 @@ export const pathToString = (path: number[]): string => { * @returns Der Pfad als Array von Zahlen */ export const stringToPath = (pathString: string): number[] => { - return pathString.split('.').map(Number); + if (!pathString) { + return []; + } + return pathString + .split('.') + .filter(segment => segment !== '') + .map(Number); }; /**