From 88a484e41e618738465a83a3b0036724cec5973a Mon Sep 17 00:00:00 2001 From: Maciej Barelkowski Date: Fri, 3 Dec 2021 17:19:29 +0100 Subject: [PATCH] fix: don't create illegal `waypoint` property Closes https://github.com/bpmn-io/bpmn-js/issues/1544 --- lib/features/modeling/BpmnFactory.js | 2 +- .../spec/features/modeling/AppendShapeSpec.js | 29 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/features/modeling/BpmnFactory.js b/lib/features/modeling/BpmnFactory.js index b4f8f49d..c89126d9 100644 --- a/lib/features/modeling/BpmnFactory.js +++ b/lib/features/modeling/BpmnFactory.js @@ -112,7 +112,7 @@ BpmnFactory.prototype.createDiWaypoint = function(point) { BpmnFactory.prototype.createDiEdge = function(semantic, attrs) { return this.create('bpmndi:BPMNEdge', assign({ bpmnElement: semantic, - waypoints: this.createDiWaypoints([]) + waypoint: this.createDiWaypoints([]) }, attrs)); }; diff --git a/test/spec/features/modeling/AppendShapeSpec.js b/test/spec/features/modeling/AppendShapeSpec.js index 5487dd08..0a86eccc 100644 --- a/test/spec/features/modeling/AppendShapeSpec.js +++ b/test/spec/features/modeling/AppendShapeSpec.js @@ -8,7 +8,9 @@ import { } from 'min-dash'; import { - getDi + getDi, + is, + getBusinessObject } from 'lib/util/ModelUtil'; import modelingModule from 'lib/features/modeling'; @@ -76,26 +78,35 @@ describe('features/modeling - append shape', function() { })); - it('should add connection', inject(function(elementRegistry, modeling) { + it('should add connection + DI', inject(function(elementRegistry, modeling) { // given var startEventShape = elementRegistry.get('StartEvent_1'); var subProcessShape = elementRegistry.get('SubProcess_1'); - var startEvent = startEventShape.businessObject, - subProcess = subProcessShape.businessObject; + var startEventBo = startEventShape.businessObject, + subProcessBo = subProcessShape.businessObject; // when var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' }), - target = targetShape.businessObject; + targetBo = targetShape.businessObject; - var connection = find(subProcess.get('flowElements'), function(e) { - return e.sourceRef === startEvent && e.targetRef === target; - }); + var connection = targetShape.incoming[0], + connectionDi = getDi(connection), + connectionBo = getBusinessObject(connection); // then expect(connection).to.exist; - expect(connection.$instanceOf('bpmn:SequenceFlow')).to.be.true; + expect(is(connection, 'bpmn:SequenceFlow')).to.be.true; + + expect(connectionBo.sourceRef).to.eql(startEventBo); + expect(connectionBo.targetRef).to.eql(targetBo); + expect(connectionBo.$parent).to.equal(subProcessBo); + + // https://github.com/bpmn-io/bpmn-js/issues/1544 + expect(connectionDi.waypoints).not.to.exist; + + expect(connectionDi.waypoint).to.have.length(2); })); });