This is an automated email from the ASF dual-hosted git repository.

tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 8823066e8f9 kie-issues#898: DMN Editor: Moving the divider line of or 
resizing a Decision Service (#3162)
8823066e8f9 is described below

commit 8823066e8f9a54e1e56426edb94d5a1999261355
Author: Aswathi <[email protected]>
AuthorDate: Sat Jul 26 00:18:05 2025 +0530

    kie-issues#898: DMN Editor: Moving the divider line of or resizing a 
Decision Service (#3162)
    
    Co-authored-by: Aswathi T V <[email protected]>
    Co-authored-by: Aswathi T V <[email protected]>
---
 packages/dmn-editor/src/diagram/Diagram.tsx        |   4 +
 packages/dmn-editor/src/diagram/nodes/Nodes.tsx    |  12 ++-
 .../src/mutations/applyAutoLayoutToDrd.ts          |   3 +
 packages/dmn-editor/src/mutations/resizeNode.ts    | 107 +++++++++++++++++++++
 .../mutations/updateDecisionServiceDividerLine.ts  |  20 ++++
 .../dmn-editor/tests-e2e/__fixtures__/nodes.ts     |  10 ++
 .../drds/decision-service-from-other-drd.png       | Bin 29602 -> 29609 bytes
 .../Google-Chrome/drds/moving-divider-line.png     | Bin 0 -> 42987 bytes
 .../drds/resized-decision-service.png              | Bin 0 -> 43493 bytes
 .../drds/decision-service-from-other-drd.png       | Bin 29586 -> 29477 bytes
 .../chromium/drds/moving-divider-line.png          | Bin 0 -> 42849 bytes
 .../chromium/drds/resized-decision-service.png     | Bin 0 -> 43353 bytes
 .../drds/decision-service-from-other-drd.png       | Bin 28501 -> 42809 bytes
 .../webkit/drds/moving-divider-line.png            | Bin 0 -> 42999 bytes
 .../webkit/drds/resized-decision-service.png       | Bin 0 -> 43330 bytes
 .../drds/modelDecisionServicesInDrds.spec.ts       |  61 ++++++++++--
 16 files changed, 209 insertions(+), 8 deletions(-)

diff --git a/packages/dmn-editor/src/diagram/Diagram.tsx 
b/packages/dmn-editor/src/diagram/Diagram.tsx
index 8c1838f7d9c..78fddf9df4c 100644
--- a/packages/dmn-editor/src/diagram/Diagram.tsx
+++ b/packages/dmn-editor/src/diagram/Diagram.tsx
@@ -766,6 +766,8 @@ export const Diagram = React.forwardRef<DiagramRef, { 
container: React.RefObject
                       __readonly_externalDmnsIndex: state
                         .computed(state)
                         
.getDirectlyIncludedExternalModelsByNamespace(externalModelsByNamespace).dmns,
+                      __readonly_href: node.id,
+                      __readonly_dmnObjectId: node.data.dmnObject?.["@_id"] ?? 
"",
                       change: {
                         isExternal: !!node.data.dmnObjectQName.prefix,
                         nodeType: node.type as NodeType,
@@ -789,6 +791,7 @@ export const Diagram = React.forwardRef<DiagramRef, { 
container: React.RefObject
                         },
                       },
                     });
+                    // Handles resizing a decision contained in a decision 
service in a DRD resizes it in all DRDs to keep Decision Services consistent
                     if (node.type === NODE_TYPES.decision && 
node.data.parentRfNode) {
                       const dsContainingDecision = node.data.parentRfNode;
                       const drds = 
state.dmn.model.definitions["dmndi:DMNDI"]?.["dmndi:DMNDiagram"] ?? [];
@@ -894,6 +897,7 @@ export const Diagram = React.forwardRef<DiagramRef, { 
container: React.RefObject
                       });
                     }
                   }
+                  // Handles repositioning a decision in a decision service in 
a DRD repositions it in all DRDs to have the Decision Service consistent
                   if (node.type === NODE_TYPES.decision && 
node.data.parentRfNode) {
                     const parentDecisionService = node.data.parentRfNode;
                     const drds = 
state.dmn.model.definitions["dmndi:DMNDI"]?.["dmndi:DMNDiagram"] ?? [];
diff --git a/packages/dmn-editor/src/diagram/nodes/Nodes.tsx 
b/packages/dmn-editor/src/diagram/nodes/Nodes.tsx
index 318e94e6f42..c4095bfc500 100644
--- a/packages/dmn-editor/src/diagram/nodes/Nodes.tsx
+++ b/packages/dmn-editor/src/diagram/nodes/Nodes.tsx
@@ -1179,6 +1179,7 @@ export const DecisionServiceNode = React.memo(
               shapeIndex: shape.index,
               localYPosition: e.y,
               snapGrid: state.diagram.snapGrid,
+              __readonly_decisionServiceHref: id,
             });
           });
         })
@@ -1192,7 +1193,16 @@ export const DecisionServiceNode = React.memo(
       return () => {
         selection.on(".drag", null);
       };
-    }, [decisionService, dmnEditorStoreApi, dmnObjectNamespace, 
externalModelsByNamespace, id, index, shape.index]);
+    }, [
+      decisionService,
+      dmnEditorStoreApi,
+      dmnObjectNamespace,
+      externalModelsByNamespace,
+      id,
+      index,
+      shape.index,
+      isCollapsed,
+    ]);
 
     const { fontCssProperties, shapeStyle } = useNodeStyle({
       dmnStyle: shape["di:Style"],
diff --git a/packages/dmn-editor/src/mutations/applyAutoLayoutToDrd.ts 
b/packages/dmn-editor/src/mutations/applyAutoLayoutToDrd.ts
index 26ddb0f9c3b..6321af867b4 100644
--- a/packages/dmn-editor/src/mutations/applyAutoLayoutToDrd.ts
+++ b/packages/dmn-editor/src/mutations/applyAutoLayoutToDrd.ts
@@ -125,6 +125,8 @@ export function applyAutoLayoutToDrd({
         snapGrid: state.diagram.snapGrid,
         __readonly_dmnObjectNamespace,
         __readonly_externalDmnsIndex,
+        __readonly_href: nodeId,
+        __readonly_dmnObjectId: node.data.dmnObject?.["@_id"] ?? "",
         change: {
           index: node.data.index,
           isExternal: !!node.data.dmnObjectQName.prefix,
@@ -178,6 +180,7 @@ export function applyAutoLayoutToDrd({
       shapeIndex: parentNode.data.shape.index,
       snapGrid: state.diagram.snapGrid,
       localYPosition: dividerLinerLocalYPosition,
+      __readonly_decisionServiceHref: parentNode.id,
     });
   }
 
diff --git a/packages/dmn-editor/src/mutations/resizeNode.ts 
b/packages/dmn-editor/src/mutations/resizeNode.ts
index bbccba8048a..3ef286c2903 100644
--- a/packages/dmn-editor/src/mutations/resizeNode.ts
+++ b/packages/dmn-editor/src/mutations/resizeNode.ts
@@ -35,6 +35,8 @@ import { SnapGrid } from "../store/Store";
 import { addOrGetDrd } from "./addOrGetDrd";
 import { DECISION_SERVICE_DIVIDER_LINE_PADDING } from 
"./updateDecisionServiceDividerLine";
 import { ExternalDmnsIndex } from "../DmnEditor";
+import { computeIndexedDrd } from "../store/computed/computeIndexes";
+import { getDecisionServicePropertiesRelativeToThisDmn } from 
"./addExistingDecisionServiceToDrd";
 
 export function resizeNode({
   definitions,
@@ -43,6 +45,8 @@ export function resizeNode({
   __readonly_dmnObjectNamespace,
   __readonly_externalDmnsIndex,
   snapGrid,
+  __readonly_href,
+  __readonly_dmnObjectId,
   change,
 }: {
   definitions: Normalized<DMN15__tDefinitions>;
@@ -51,6 +55,8 @@ export function resizeNode({
   snapGrid: SnapGrid;
   __readonly_dmnObjectNamespace: string | undefined;
   __readonly_externalDmnsIndex: ExternalDmnsIndex;
+  __readonly_href: string;
+  __readonly_dmnObjectId: string;
   change: {
     nodeType: NodeType;
     isExternal: boolean;
@@ -167,4 +173,105 @@ export function resizeNode({
 
   shapeBounds["@_width"] = newDimensions.width;
   shapeBounds["@_height"] = newDimensions.height;
+
+  // Handles resizing a decision service in a DRD resizes it in all DRDs to 
keep Decision Services consistent
+  if (change.nodeType === NODE_TYPES.decisionService) {
+    const drds = definitions["dmndi:DMNDI"]?.["dmndi:DMNDiagram"] ?? [];
+    const drgElements = definitions.drgElement!;
+    for (let i = 0; i < drds.length; i++) {
+      if (i === drdIndex) {
+        continue;
+      }
+      const _indexedDrd = computeIndexedDrd(definitions["@_namespace"], 
definitions, i);
+      const dsShape = _indexedDrd.dmnShapesByHref.get(__readonly_href);
+      if (dsShape && dsShape["dc:Bounds"] && !shape["@_isCollapsed"]) {
+        dsShape["dc:Bounds"]["@_width"] = shape["dc:Bounds"]?.["@_width"] ?? 0;
+        dsShape["dc:Bounds"]["@_height"] = shape["dc:Bounds"]?.["@_height"] ?? 
0;
+      }
+
+      // Apply delta shift to neighbouring nodes in other DRD
+      const decisionService = drgElements.find(
+        (elem) => elem["@_id"] === __readonly_dmnObjectId
+      ) as Normalized<DMN15__tDecisionService>;
+      const { containedDecisionHrefsRelativeToThisDmn } = 
getDecisionServicePropertiesRelativeToThisDmn({
+        thisDmnsNamespace: definitions["@_namespace"],
+        decisionService,
+        decisionServiceNamespace: __readonly_dmnObjectNamespace ?? 
definitions["@_namespace"],
+      });
+
+      const decisionsInDecisionServiceInDrd: string[] = [];
+      for (const elem of drgElements) {
+        if (elem.__$$element === "decisionService") {
+          decisionsInDecisionServiceInDrd.push(
+            ...(elem.outputDecision ?? []).map((od) => od["@_href"]),
+            ...(elem.encapsulatedDecision ?? []).map((od) => od["@_href"])
+          );
+        }
+      }
+
+      for (const [key] of _indexedDrd.dmnShapesByHref.entries()) {
+        if (key !== __readonly_href && 
!containedDecisionHrefsRelativeToThisDmn.includes(key)) {
+          const nodeShape = _indexedDrd.dmnShapesByHref.get(key);
+          if (nodeShape && nodeShape["dc:Bounds"] && dsShape && 
!shape["@_isCollapsed"]) {
+            const nodeShapeWidth = nodeShape["dc:Bounds"]!["@_x"] + 
nodeShape["dc:Bounds"]!["@_width"];
+            const nodeShapeHeight = nodeShape["dc:Bounds"]!["@_y"] + 
nodeShape["dc:Bounds"]!["@_height"];
+            const dsShapeWidth = dsShape["dc:Bounds"]!["@_x"] + 
dsShape["dc:Bounds"]!["@_width"] - deltaWidth;
+            const dsShapeHeight = dsShape["dc:Bounds"]!["@_y"] + 
dsShape["dc:Bounds"]!["@_height"] - deltaHeight;
+
+            const drgElem = drgElements.filter((item) => item["@_id"] === 
nodeShape["@_dmnElementRef"]);
+
+            const shiftXPosition =
+              nodeShape["dc:Bounds"]["@_x"] >= dsShapeWidth &&
+              (nodeShapeHeight >= dsShape["dc:Bounds"]!["@_y"] || 
nodeShape["dc:Bounds"]["@_y"] <= dsShapeHeight);
+
+            const shiftYPosition =
+              nodeShape["dc:Bounds"]["@_y"] >= dsShapeHeight &&
+              (dsShapeWidth <= nodeShapeWidth || 
nodeShape["dc:Bounds"]!["@_x"] <= nodeShapeWidth);
+
+            const bounds = nodeShape["dc:Bounds"];
+
+            if (drgElem[0].__$$element === "decisionService") {
+              const containedDecisions = [
+                ...(drgElem[0].outputDecision ?? []).map((od) => od["@_href"]),
+                ...(drgElem[0].encapsulatedDecision ?? []).map((od) => 
od["@_href"]),
+              ];
+
+              if (shiftXPosition || shiftYPosition) {
+                const divider = 
nodeShape["dmndi:DMNDecisionServiceDividerLine"];
+                const waypoints = divider?.["di:waypoint"];
+                // Handles position shift of decision service
+                if (shiftXPosition) {
+                  bounds["@_x"] += deltaWidth;
+                }
+
+                if (shiftYPosition) {
+                  bounds["@_y"] += deltaHeight;
+                  waypoints![0]["@_y"] += deltaHeight;
+                  waypoints![1]["@_y"] += deltaHeight;
+                }
+                // Handles position shift of decisions inside decision service
+                for (const decision of containedDecisions) {
+                  const containedDecisionBounds = 
_indexedDrd.dmnShapesByHref.get(decision)?.["dc:Bounds"];
+                  if (containedDecisionBounds) {
+                    if (shiftXPosition) containedDecisionBounds["@_x"] += 
deltaWidth;
+                    if (shiftYPosition) containedDecisionBounds["@_y"] += 
deltaHeight;
+                  }
+                }
+              }
+            } else {
+              // Handles position shift of other independent shapes
+              if (!decisionsInDecisionServiceInDrd.some((arr) => 
arr.includes(key))) {
+                if (shiftXPosition) {
+                  bounds["@_x"] = bounds!["@_x"] + deltaWidth;
+                }
+                if (shiftYPosition) {
+                  bounds["@_y"] = bounds!["@_y"] + deltaHeight;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
 }
diff --git 
a/packages/dmn-editor/src/mutations/updateDecisionServiceDividerLine.ts 
b/packages/dmn-editor/src/mutations/updateDecisionServiceDividerLine.ts
index daebac4cb93..b28c1af6bc2 100644
--- a/packages/dmn-editor/src/mutations/updateDecisionServiceDividerLine.ts
+++ b/packages/dmn-editor/src/mutations/updateDecisionServiceDividerLine.ts
@@ -33,6 +33,8 @@ import { SnapGrid } from "../store/Store";
 import { NODE_TYPES } from "../diagram/nodes/NodeTypes";
 import { generateUuid } from "@kie-tools/boxed-expression-component/dist/api";
 import { ExternalDmnsIndex } from "../DmnEditor";
+import { getDecisionServiceDividerLineLocalY } from 
"../diagram/maths/DmnMaths";
+import { computeIndexedDrd } from "../store/computed/computeIndexes";
 
 export const DECISION_SERVICE_DIVIDER_LINE_PADDING = 100;
 
@@ -46,6 +48,7 @@ export function updateDecisionServiceDividerLine({
   localYPosition,
   drgElementIndex,
   snapGrid,
+  __readonly_decisionServiceHref,
 }: {
   definitions: Normalized<DMN15__tDefinitions>;
   drdIndex: number;
@@ -56,6 +59,7 @@ export function updateDecisionServiceDividerLine({
   localYPosition: number;
   drgElementIndex: number;
   snapGrid: SnapGrid;
+  __readonly_decisionServiceHref: string;
 }) {
   const { diagramElements } = addOrGetDrd({ definitions, drdIndex });
 
@@ -121,6 +125,22 @@ export function updateDecisionServiceDividerLine({
   shape["dmndi:DMNDecisionServiceDividerLine"] ??= 
getCentralizedDecisionServiceDividerLine(shapeBounds);
   shape["dmndi:DMNDecisionServiceDividerLine"]["di:waypoint"]![0]["@_y"] = 
newDividerLineYPosition;
   shape["dmndi:DMNDecisionServiceDividerLine"]["di:waypoint"]![1]["@_y"] = 
newDividerLineYPosition;
+
+  //Updating dividerline position in all DRDs that contain the decisions 
service
+  const dividerLineLocalY = getDecisionServiceDividerLineLocalY(shape);
+  const drds = definitions["dmndi:DMNDI"]?.["dmndi:DMNDiagram"] ?? [];
+  for (let i = 0; i < drds.length; i++) {
+    if (i === drdIndex) {
+      continue;
+    }
+    const _indexedDrd = computeIndexedDrd(definitions["@_namespace"], 
definitions, i);
+    const dsShape = 
_indexedDrd.dmnShapesByHref.get(__readonly_decisionServiceHref);
+    const dsShapeYPosition = dsShape?.["dc:Bounds"]?.["@_y"];
+    if (dsShape && dsShape["dmndi:DMNDecisionServiceDividerLine"]) {
+      
dsShape["dmndi:DMNDecisionServiceDividerLine"]!["di:waypoint"]![0]["@_y"] = 
dsShapeYPosition! + dividerLineLocalY;
+      
dsShape["dmndi:DMNDecisionServiceDividerLine"]!["di:waypoint"]![1]["@_y"] = 
dsShapeYPosition! + dividerLineLocalY;
+    }
+  }
 }
 
 export function getCentralizedDecisionServiceDividerLine(
diff --git a/packages/dmn-editor/tests-e2e/__fixtures__/nodes.ts 
b/packages/dmn-editor/tests-e2e/__fixtures__/nodes.ts
index ef5cef7fd8c..582418f1448 100644
--- a/packages/dmn-editor/tests-e2e/__fixtures__/nodes.ts
+++ b/packages/dmn-editor/tests-e2e/__fixtures__/nodes.ts
@@ -294,4 +294,14 @@ export class Nodes {
     await this.select({ name: args.name, position: NodePosition.TOP });
     await 
this.page.getByTestId(`kie-tools--dmn-editor--${args.name}-collapsed-button`).click();
   }
+
+  public async moveDividerLine(args: { nodeName: string }) {
+    await this.select({ name: args.nodeName, position: NodePosition.CENTER });
+    const node = this.get({ name: args.nodeName });
+    const { x, y, width, height } = (await node.boundingBox()) ?? { x: 0, y: 
0, width: 0, height: 0 };
+    await this.page.mouse.move(x + width / 2, y + height / 2);
+    await this.page.mouse.down();
+    await this.page.mouse.move(x, y - 60);
+    await this.page.mouse.up();
+  }
 }
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/decision-service-from-other-drd.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/decision-service-from-other-drd.png
index 477bd55dd61..153b698e413 100644
Binary files 
a/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/decision-service-from-other-drd.png
 and 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/decision-service-from-other-drd.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/moving-divider-line.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/moving-divider-line.png
new file mode 100644
index 00000000000..dede6959bb7
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/moving-divider-line.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/resized-decision-service.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/resized-decision-service.png
new file mode 100644
index 00000000000..36a81e9fc4b
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/resized-decision-service.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/decision-service-from-other-drd.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/decision-service-from-other-drd.png
index 7c035d7023a..f707794c25d 100644
Binary files 
a/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/decision-service-from-other-drd.png
 and 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/decision-service-from-other-drd.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/moving-divider-line.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/moving-divider-line.png
new file mode 100644
index 00000000000..7cdce7ce88c
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/moving-divider-line.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/resized-decision-service.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/resized-decision-service.png
new file mode 100644
index 00000000000..c38d1461be1
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/resized-decision-service.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/decision-service-from-other-drd.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/decision-service-from-other-drd.png
index 9271a15651c..0583de60434 100644
Binary files 
a/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/decision-service-from-other-drd.png
 and 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/decision-service-from-other-drd.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/moving-divider-line.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/moving-divider-line.png
new file mode 100644
index 00000000000..01f400ceb73
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/moving-divider-line.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/resized-decision-service.png
 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/resized-decision-service.png
new file mode 100644
index 00000000000..5156c36d988
Binary files /dev/null and 
b/packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/resized-decision-service.png
 differ
diff --git 
a/packages/dmn-editor/tests-e2e/drds/modelDecisionServicesInDrds.spec.ts 
b/packages/dmn-editor/tests-e2e/drds/modelDecisionServicesInDrds.spec.ts
index 76ecc402fbc..8fd2bf489ca 100644
--- a/packages/dmn-editor/tests-e2e/drds/modelDecisionServicesInDrds.spec.ts
+++ b/packages/dmn-editor/tests-e2e/drds/modelDecisionServicesInDrds.spec.ts
@@ -339,22 +339,69 @@ test.describe("Model Decision Services - DRD", () => {
     // TODO
   });
 
-  test("889 resize DS content and replicate in DRDs", async ({ drds }) => {
-    test.skip(true, 
"https://github.com/apache/incubator-kie-issues/issues/889";);
+  test("Resizing a Decision Service in a DRD should replicate it in all DRDs", 
async ({
+    drds,
+    drgNodes,
+    palette,
+    nodes,
+    diagram,
+  }) => {
     test.info().annotations.push({
       type: TestAnnotations.REGRESSION,
-      description: "https://github.com/apache/incubator-kie-issues/issues/889";,
+      description: "https://github.com/apache/incubator-kie-issues/issues/898";,
     });
-    // TODO
+    await drds.toggle();
+    await drds.create({ name: "First DRD" });
+    await drgNodes.toggle();
+
+    await palette.dragNewNode({
+      type: NodeType.DECISION_SERVICE,
+      targetPosition: { x: 400, y: 200 },
+      thenRenameTo: "DS1",
+    });
+    await expect(nodes.get({ name: "DS1" })).toBeAttached();
+    await drds.toggle();
+    await drds.create({ name: "Second DRD" });
+    await drgNodes.dragNode({ name: "DS1", targetPosition: { x: 400, y: 200 } 
});
+    await drgNodes.toggle();
+    await nodes.resize({ nodeName: "DS1", xOffset: 100, yOffset: 100 });
+    await drds.toggle();
+    await drds.navigateTo({ name: "First DRD" });
+    await drds.toggle();
+    await 
expect(diagram.get()).toHaveScreenshot("resized-decision-service.png");
   });
 
-  test("898 move DS divider and replicate in DRDs", async ({ drds }) => {
-    test.skip(true, 
"https://github.com/apache/incubator-kie-issues/issues/898";);
+  test("Moving decision service divider line in one DRD replicates it in all 
DRDs", async ({
+    drds,
+    drgNodes,
+    palette,
+    nodes,
+    diagram,
+  }) => {
     test.info().annotations.push({
       type: TestAnnotations.REGRESSION,
       description: "https://github.com/apache/incubator-kie-issues/issues/898";,
     });
-    // TODO
+    await drds.toggle();
+    await drds.create({ name: "First DRD" });
+    await drgNodes.toggle();
+
+    await palette.dragNewNode({
+      type: NodeType.DECISION_SERVICE,
+      targetPosition: { x: 400, y: 200 },
+      thenRenameTo: "DS1",
+    });
+    await expect(nodes.get({ name: "DS1" })).toBeAttached();
+    await drds.toggle();
+    await drds.create({ name: "Second DRD" });
+    await drgNodes.dragNode({ name: "DS1", targetPosition: { x: 400, y: 200 } 
});
+
+    await drgNodes.toggle();
+    await nodes.moveDividerLine({ nodeName: "DS1" });
+    await drds.toggle();
+    await drds.navigateTo({ name: "First DRD" });
+    await drds.toggle();
+    await expect(diagram.get()).toHaveScreenshot("moving-divider-line.png");
   });
 
   test("Adding a node to Decision service adds it to all DRDs where Decision 
Service is in expanded form", async ({


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to