diff --git a/src/main/models/Flow.ts b/src/main/models/Flow.ts index 119e8239..b6c5d996 100644 --- a/src/main/models/Flow.ts +++ b/src/main/models/Flow.ts @@ -63,6 +63,7 @@ export class Flow { "steps", "subflows", "waits", + "transforms", ]; constructor(path?: string, data?: unknown); diff --git a/src/main/models/FlowNode.ts b/src/main/models/FlowNode.ts index becc7f67..0f272264 100644 --- a/src/main/models/FlowNode.ts +++ b/src/main/models/FlowNode.ts @@ -73,7 +73,7 @@ export class FlowNode extends FlowElement { } } return connectors; - } else if (subtype === "assignments") { + } else if (subtype === "assignments" || subtype === "transforms") { return element.connector ? [new FlowElementConnector("connector", element.connector, {})] : []; diff --git a/tests/models/Flow.test.ts b/tests/models/Flow.test.ts index da0a74a0..42c42cd5 100644 --- a/tests/models/Flow.test.ts +++ b/tests/models/Flow.test.ts @@ -67,4 +67,61 @@ describe("Flow Model", () => { expect(errors).toBeTruthy(); expect(errors).not.toBeInstanceOf(NoErrorThrownError); }); + + it("should identify transformElement as a FlowNode", () => { + const sut: Flow = new Flow(); + sut.xmldata = { + transforms: [ + { + name: "OCR_Mapping", + description: "OCR Mapping", + label: "OCR Mapping", + locationX: "176", + locationY: "323", + connector: { + targetReference: "OCR", + }, + dataType: "SObject", + isCollection: "false", + objectType: "OpportunityContactRole", + scale: "0", + transformValues: { + transformValueActions: [ + { + outputFieldApiName: "OpportunityId", + transformType: "Map", + value: { + elementReference: "$Record.Id", + }, + }, + { + outputFieldApiName: "ContactId", + transformType: "Map", + value: { + elementReference: "$Record.ContactId", + }, + }, + { + outputFieldApiName: "Role", + transformType: "Map", + value: { + stringValue: "Decision Maker", + }, + }, + ], + }, + }, + ], + }; + + sut["preProcessNodes"](); + + expect(sut.elements).toBeDefined(); + expect(sut.elements).toHaveLength(1); + const element = sut.elements?.pop(); + expect(element).toBeDefined(); + expect(element).toHaveProperty("name", "OCR_Mapping"); + expect(element?.metaType).toBe("node"); + expect(element?.subtype).toBe("transforms"); + }); });