From 1d5430e704901536aee4eaf3ba41585ca6ea1dc8 Mon Sep 17 00:00:00 2001 From: AsToNlele Date: Mon, 30 Sep 2024 15:12:23 +0200 Subject: [PATCH] feat(dataSerialiser): keep original object --- src/Utilities/dataSerialiser.js | 2 +- src/Utilities/dataSerialiser.test.js | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Utilities/dataSerialiser.js b/src/Utilities/dataSerialiser.js index 6576a2a32..03dd4d558 100644 --- a/src/Utilities/dataSerialiser.js +++ b/src/Utilities/dataSerialiser.js @@ -17,7 +17,7 @@ const serialiseObject = (object, map) => { return object; } - const result = {}; + const result = { ...object }; Object.entries(map).forEach(([key, value]) => { let paths = Array.isArray(value) ? value : [value]; diff --git a/src/Utilities/dataSerialiser.test.js b/src/Utilities/dataSerialiser.test.js index 451ab5762..1cd191b0e 100644 --- a/src/Utilities/dataSerialiser.test.js +++ b/src/Utilities/dataSerialiser.test.js @@ -40,6 +40,7 @@ describe('basic object', () => { }; const obj = createBasicTestObject(); expect(dataSerialiser(obj, dataMap)).toEqual({ + ...obj, id: obj.id, title: obj.name, totalSystems: obj.total_systems, @@ -58,6 +59,7 @@ describe('basic array ', () => { const items = faker.helpers.multiple(createBasicTestObject, { count: 5 }); expect(dataSerialiser(items, dataMap)).toEqual( items.map((item) => ({ + ...item, id: item.id, title: item.name, totalSystems: item.total_systems, @@ -77,11 +79,15 @@ describe('nested object', () => { }; const obj = createNestedTestObject(); + console.log(obj); + console.log(dataSerialiser(obj, dataMap)); expect(dataSerialiser(obj, dataMap)).toEqual({ + ...obj, id: obj.id, title: obj.name, complianceThreshold: obj.compliance_threshold, policy: { + ...obj.policy, deeper: { refId: obj.policy.ref_id, and: { @@ -104,10 +110,12 @@ describe('nested object with multiple output paths', () => { const obj = createNestedTestObject(); expect(dataSerialiser(obj, dataMap)).toEqual({ + ...obj, id: obj.id, title: obj.name, desc: obj.name, policy: { + ...obj.policy, id: obj.id, }, }); @@ -128,9 +136,11 @@ describe('nested object with a value of an array type', () => { const obj = createNestedTestObject(); expect(dataSerialiser(obj, dataMap)).toEqual({ + ...obj, name: obj.name, policies: [ { + ...obj.policies[0], id: obj.policies[0].id, name: obj.policies[0].title, }, @@ -138,3 +148,18 @@ describe('nested object with a value of an array type', () => { }); }); }); + +describe('original object is overrided with the serializer', () => { + it('should add new properties and keep the original', () => { + const dataMap = { + name: 'title', + }; + + const obj = createNestedTestObject(); + + expect(dataSerialiser(obj, dataMap)).toEqual({ + ...obj, + title: obj.name, + }); + }); +});