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); }; /**