From f48f2fe40abf3869082caaaf6e8242ed3c01762c Mon Sep 17 00:00:00 2001 From: DanielleCogs <99753874+DanielleCogs@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:13:07 -0700 Subject: [PATCH] Fix(Data Mapper): deserialization string bug fix (#4567) fixed deserialization bug Co-authored-by: Danielle Cogburn --- .../Standalone/src/dataMapperV1/components/DevApiTester.tsx | 2 +- libs/data-mapper/src/lib/utils/DataMap.Utils.ts | 2 +- .../data-mapper/src/lib/utils/__test__/DataMapUtils.spec.ts | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/Standalone/src/dataMapperV1/components/DevApiTester.tsx b/apps/Standalone/src/dataMapperV1/components/DevApiTester.tsx index 82308addaad..a79adca68fd 100644 --- a/apps/Standalone/src/dataMapperV1/components/DevApiTester.tsx +++ b/apps/Standalone/src/dataMapperV1/components/DevApiTester.tsx @@ -119,7 +119,7 @@ export const DevApiTester = () => { setSchemaFilename(newValue ?? '')} /> diff --git a/libs/data-mapper/src/lib/utils/DataMap.Utils.ts b/libs/data-mapper/src/lib/utils/DataMap.Utils.ts index 325949555a8..9aec8804970 100644 --- a/libs/data-mapper/src/lib/utils/DataMap.Utils.ts +++ b/libs/data-mapper/src/lib/utils/DataMap.Utils.ts @@ -551,7 +551,7 @@ export const qualifyLoopRelativeSourceKeys = (targetKey: string): string => { srcKeys.forEach((srcKey) => { if (!srcKey.includes(curSrcParentKey) && srcKey !== '*') { const fullyQualifiedSrcKey = `${curSrcParentKey}/${srcKey}`; - qualifiedTargetKey = qualifiedTargetKey.replace(srcKey, fullyQualifiedSrcKey); + qualifiedTargetKey = qualifiedTargetKey.replace(`(${srcKey}`, `(${fullyQualifiedSrcKey}`); curSrcParentKey = fullyQualifiedSrcKey; } else if (srcKey === '*') { diff --git a/libs/data-mapper/src/lib/utils/__test__/DataMapUtils.spec.ts b/libs/data-mapper/src/lib/utils/__test__/DataMapUtils.spec.ts index 59696d32521..1a3e266e5e7 100644 --- a/libs/data-mapper/src/lib/utils/__test__/DataMapUtils.spec.ts +++ b/libs/data-mapper/src/lib/utils/__test__/DataMapUtils.spec.ts @@ -765,6 +765,12 @@ describe('utils/DataMap', () => { ) ).toBe('/ns0:TargetSchemaRoot/Looping/ManyToOne/$for(/ns0:SourceSchemaRoot/Looping/ManyToOne/Simple, $a)/RandomKey'); }); + + it('two loops with child name in source name', () => { + expect(qualifyLoopRelativeSourceKeys('/ns0:X12_00401_856/$for(/Shipment/HL-S)/ns0:HL-SLoop/$for(HL)/ns0:HL/HL01')).toBe( + '/ns0:X12_00401_856/$for(/Shipment/HL-S)/ns0:HL-SLoop/$for(/Shipment/HL-S/HL)/ns0:HL/HL01' + ); + }); }); describe('getTargetValueWithoutLoops', () => {