bpmn-js/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js
Nico Rehwaldt d3449ca87c chore(project): es6ify source code
* use ES6 import / export
* UTILS: export individual utilities
* TESTS: localize TestHelper includes

BREAKING CHANGE:

* all utilities export independent functions
* library sources got ported to ES6. You must now use
  a ES module bundler such as Browserify + babelify or
  Webpack to consume this library (or parts of it).
2018-04-03 16:32:14 +02:00

99 lines
2.4 KiB
JavaScript

'use strict';
import {
bootstrapModeler,
inject
} from 'test/TestHelper';
import modelingModule from 'lib/features/modeling';
import coreModule from 'lib/core';
describe('features/modeling - layout data association', function() {
var diagramXML = require('../../../../fixtures/bpmn/basic.bpmn');
beforeEach(bootstrapModeler(diagramXML, {
modules: [
coreModule,
modelingModule
]
}));
var rootShape,
taskShape;
beforeEach(inject(function(elementRegistry, canvas) {
rootShape = canvas.getRootElement();
taskShape = elementRegistry.get('Task_1');
}));
it('should layout straight after DataObjectReference creation', inject(function(modeling) {
// when
var dataObjectShape = modeling.createShape({ type: 'bpmn:DataObjectReference' }, { x: 200, y: 400 }, rootShape);
modeling.connect(dataObjectShape, taskShape);
var waypoints = dataObjectShape.outgoing[0].waypoints;
// then
expect(waypoints).to.eql([
{ original: { x: 200, y: 400 }, x: 218, y: 375 },
{ original: { x: 403, y: 120 }, x: 374, y: 160 }
]);
}));
it('should layout straight after DataObjectReference move', inject(function(modeling) {
// given
var dataObjectShape = modeling.createShape({ type: 'bpmn:DataObjectReference' }, { x: 200, y: 400 }, rootShape);
modeling.connect(dataObjectShape, taskShape);
// when
modeling.moveElements([ dataObjectShape ], { x: 20, y: 0 }, rootShape);
var waypoints = dataObjectShape.outgoing[0].waypoints;
// then
expect(waypoints).to.eql([
{ original: { x: 220, y: 400 }, x: 236, y: 375 },
{ original: { x: 403, y: 120 }, x: 377, y: 160 }
]);
}));
it('should retain waypoints after DataObjectReference move', inject(function(modeling) {
// given
var dataObjectShape = modeling.createShape({ type: 'bpmn:DataObjectReference' }, { x: 200, y: 400 }, rootShape),
connection = modeling.connect(dataObjectShape, taskShape),
waypoints = connection.waypoints;
// add a waypoint
waypoints.splice(1, 0, { x: 400, y: 300 });
modeling.updateWaypoints(connection, waypoints);
// when
modeling.moveElements([ dataObjectShape ], { x: 20, y: 0 }, rootShape);
waypoints = taskShape.incoming[0].waypoints;
// then
expect(waypoints).to.eql([
{ original: { x: 220, y: 400 }, x: 238, y: 390 },
{ x: 400, y: 300 },
{ original: { x: 403, y: 120 }, x: 402, y: 160 }
]);
}));
});