test(matchers): add custom .bounds matcher

Closes #349
This commit is contained in:
Nico Rehwaldt 2015-09-02 14:15:45 +02:00
parent 0b8f0465f0
commit e78e4c94a3
8 changed files with 265 additions and 141 deletions

View File

@ -9,3 +9,7 @@ TestHelper.insertCSS('bpmn-embedded.css', require('../assets/bpmn-font/css/bpmn-
TestHelper.insertCSS('diagram-js-testing.css',
'.test-container .result { height: 500px; }' + '.test-container > div'
);
// add suite specific matchers
global.chai.use(require('./matchers/Bounds'));

132
test/matchers/Bounds.js Normal file
View File

@ -0,0 +1,132 @@
'use strict';
var pick = require('lodash/object/pick');
var BOUNDS_ATTRS = [ 'x', 'y', 'width', 'height' ],
POSITION_ATTRS = [ 'x', 'y' ],
DIMENSION_ATTRS = [ 'width', 'height' ];
function getBounds(s) {
if ('bounds' in s) {
s = s.bounds;
}
// TLBR object
if ('top' in s) {
return {
x: s.left,
y: s.top,
width: s.right - s.left,
height: s.bottom - s.top
};
}
// { x, y, width, height } object
else {
return pick(s, BOUNDS_ATTRS);
}
}
module.exports = function(chai, utils) {
var Assertion = chai.Assertion;
/**
* A simple bounds matcher, that verifies an element
* has the correct { x, y, width, height }.
*
* Unwraps `element.bounds` (BPMNDI) if present.
*
* @example
*
* expect(di.label).to.have.bounds({ x: 100, y: 100, width: 10, height: 20 });
* expect(shape).to.have.bounds({ top: 100, left: 0, right: 200, bottom: 50 });
*
* @param {Bounds|TLBR} exp
*/
Assertion.addMethod('bounds', function(exp) {
var obj = this._obj;
var objectBounds = getBounds(obj),
expectedBounds = getBounds(exp);
BOUNDS_ATTRS.forEach(function(attr) {
var bounds = new Assertion(objectBounds[attr]);
bounds.assert(
objectBounds[attr] == expectedBounds[attr],
'expected <' + obj.id + '#' + attr + '> to equal #{exp} but got #{act}',
'expected <' + obj.id + '#' + attr + '> to not equal #{exp}',
expectedBounds[attr],
objectBounds[attr]
);
});
});
/**
* A simple dimensions matcher, that verifies an element
* has the correct { width, height }.
*
* Unwraps `element.bounds` (BPMNDI) if present.
*
* @example
*
* expect(di.label).to.have.dimensions({ width: 10, height: 20 });
*
* @param {Dimensions} exp
*/
Assertion.addMethod('dimensions', function(exp) {
var obj = this._obj;
var objectBounds = getBounds(obj),
expectedBounds = getBounds(exp);
DIMENSION_ATTRS.forEach(function(attr) {
var bounds = new Assertion(objectBounds[attr]);
bounds.assert(
objectBounds[attr] == expectedBounds[attr],
'expected <' + obj.id + '#' + attr + '> to equal #{exp} but got #{act}',
'expected <' + obj.id + '#' + attr + '> to not equal #{exp}',
expectedBounds[attr],
objectBounds[attr]
);
});
});
/**
* A simple position matcher, that verifies an element
* has the correct { x, y }.
*
* Unwraps `element.bounds` (BPMNDI) if present.
*
* @example
*
* expect(taskShape).to.have.position({ x: 100, y: 150 });
*
* @param {Point} exp
*/
Assertion.addMethod('position', function(exp) {
var obj = this._obj;
var objectBounds = getBounds(obj),
expectedBounds = getBounds(exp);
POSITION_ATTRS.forEach(function(attr) {
var bounds = new Assertion(objectBounds[attr]);
bounds.assert(
objectBounds[attr] == expectedBounds[attr],
'expected <' + obj.id + '#' + attr + '> to equal #{exp} but got #{act}',
'expected <' + obj.id + '#' + attr + '> to not equal #{exp}',
expectedBounds[attr],
objectBounds[attr]
);
});
});
};

View File

@ -29,7 +29,7 @@ describe('features/auto-resize', function() {
var task,
participant,
startEvent,
expectedBounds;
originalBounds;
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
@ -39,9 +39,9 @@ describe('features/auto-resize', function() {
participant = elementRegistry.get('Participant_1');
startEvent = elementRegistry.get('StartEvent_1');
expectedBounds = getBounds(participant);
originalBounds = getBounds(participant);
expect(expectedBounds).to.eql({ x: 247, y: 160, width: 371, height: 178 });
expect(originalBounds).to.eql({ x: 247, y: 160, width: 371, height: 178 });
}));
@ -55,9 +55,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 100, y: 0 }, participant);
// then
assign(expectedBounds, { width: 525 });
var expectedBounds = assign(originalBounds, { width: 525 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -68,9 +68,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 0, y: -50 }, participant);
// then
assign(expectedBounds, { y: 99, height: 239 });
var expectedBounds = assign(originalBounds, { y: 99, height: 239 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -81,9 +81,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 0, y: 50 }, participant);
// then
assign(expectedBounds, { height: 239 });
var expectedBounds = assign(originalBounds, { height: 239 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -94,9 +94,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([startEvent], { x: -100, y: 0 }, participant);
// then
assign(expectedBounds, { x: 122, width: 496 });
var expectedBounds = assign(originalBounds, { x: 122, width: 496 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -107,9 +107,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 50, y: 50 }, participant);
// then
assign(expectedBounds, { width: 475, height: 239 });
var expectedBounds = assign(originalBounds, { width: 475, height: 239 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -120,7 +120,7 @@ describe('features/auto-resize', function() {
modeling.moveElements([startEvent], { x: -100, y: -100 }, participant);
// then
expect(getBounds(participant)).to.eql({ x: 122, y: 71, width: 496, height: 267 });
expect(participant).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
}));
@ -132,7 +132,7 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 300, y: 0 }, participant);
// then
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(originalBounds);
}));
@ -144,9 +144,9 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 0, y: 49 }, participant);
// then
assign(expectedBounds, { height: 238 });
var expectedBounds = assign(originalBounds, { height: 238 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -158,7 +158,7 @@ describe('features/auto-resize', function() {
modeling.moveElements([task], { x: 0, y: 47 }, participant);
// then
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(originalBounds);
}));
@ -170,7 +170,7 @@ describe('features/auto-resize', function() {
commandStack.undo();
// then
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(originalBounds);
}));
@ -183,7 +183,7 @@ describe('features/auto-resize', function() {
commandStack.redo();
// then
expect(getBounds(participant)).to.eql({ x: 122, y: 71, width: 496, height: 267 });
expect(participant).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
}));
@ -192,16 +192,15 @@ describe('features/auto-resize', function() {
describe('after appending', function(){
it('should expand the bottom right edges', inject(function(modeling) {
// when
modeling.appendShape(task, { type: 'bpmn:Task' }, { x: 660, y: 350 }, participant);
// then
assign(expectedBounds, { width: 563, height: 290 });
var expectedBounds = assign(originalBounds, { width: 563, height: 290 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
}));
@ -215,7 +214,7 @@ describe('features/auto-resize', function() {
commandStack.undo();
// then
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(originalBounds);
}));
@ -230,9 +229,9 @@ describe('features/auto-resize', function() {
commandStack.redo();
// then
assign(expectedBounds, { width: 563 });
var expectedBounds = assign(originalBounds, { width: 563 });
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(expectedBounds);
expect(task2).to.be.defined;
expect(task.outgoing).not.to.be.empty;
@ -256,7 +255,7 @@ describe('features/auto-resize', function() {
modeling.createShape(laneAttrs, { x: 280, y: 200 }, participant);
// then
expect(getBounds(participant)).to.eql(expectedBounds);
expect(participant).to.have.bounds(originalBounds);
}));
});
@ -278,7 +277,7 @@ describe('features/auto-resize', function() {
modeling.createShape({ type: 'bpmn:Task' }, { x: 600, y: 320 }, laneShape);
// then
expect(getBounds(laneShape)).to.eql({ x: 307, y: 160, width: 443, height: 260});
expect(laneShape).to.have.bounds({ x: 307, y: 160, width: 443, height: 260});
}));
});

View File

@ -4,6 +4,9 @@
var find = require('lodash/collection/find');
var assign = require('lodash/object/assign');
var modelingModule = require('../../../../lib/features/modeling'),
coreModule = require('../../../../lib/core');
@ -39,10 +42,8 @@ describe('features/modeling - append shape', function() {
// given
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var startEvent = startEventShape.businessObject;
// when
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' }),
@ -52,10 +53,7 @@ describe('features/modeling - append shape', function() {
expect(target.di).to.be.defined;
expect(target.di.$parent).to.eql(startEvent.di.$parent);
expect(target.di.bounds.x).to.equal(targetShape.x);
expect(target.di.bounds.y).to.equal(targetShape.y);
expect(target.di.bounds.width).to.equal(targetShape.width);
expect(target.di.bounds.height).to.equal(targetShape.height);
expect(target.di).to.have.bounds(targetShape);
}));
@ -65,8 +63,7 @@ describe('features/modeling - append shape', function() {
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var subProcess = subProcessShape.businessObject;
// when
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' }),
@ -83,14 +80,9 @@ describe('features/modeling - append shape', function() {
// given
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
// when
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:EndEvent' }),
target = targetShape.businessObject;
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:EndEvent' });
var label = targetShape.label;
@ -98,10 +90,7 @@ describe('features/modeling - append shape', function() {
expect(label).to.be.defined;
expect(elementRegistry.get(label.id)).to.be.defined;
expect(label.x).to.equal(441);
expect(label.y).to.equal(278);
expect(label.width).to.equal(LabelUtil.DEFAULT_LABEL_SIZE.width);
expect(label.height).to.equal(LabelUtil.DEFAULT_LABEL_SIZE.height);
expect(label).to.have.bounds(assign({ x: 441, y: 278 }, LabelUtil.DEFAULT_LABEL_SIZE));
}));
@ -109,10 +98,6 @@ describe('features/modeling - append shape', function() {
// given
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
// when
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:EndEvent' }),
@ -121,10 +106,7 @@ describe('features/modeling - append shape', function() {
// then
expect(target.di.label).to.be.defined;
expect(target.di.label.bounds.x).to.equal(targetShape.label.x);
expect(target.di.label.bounds.y).to.equal(targetShape.label.y);
expect(target.di.label.bounds.width).to.equal(targetShape.label.width);
expect(target.di.label.bounds.height).to.equal(targetShape.label.height);
expect(target.di.label).to.have.bounds(targetShape.label);
}));
});
@ -160,11 +142,10 @@ describe('features/modeling - append shape', function() {
it('should undo add to parent', inject(function(elementRegistry, modeling, commandStack) {
// given
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEventShape = elementRegistry.get('StartEvent_1'),
subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var subProcess = subProcessShape.businessObject;
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' }),
target = targetShape.businessObject;
@ -181,8 +162,8 @@ describe('features/modeling - append shape', function() {
it('should undo add shape label', inject(function(elementRegistry, modeling, commandStack) {
// given
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEventShape = elementRegistry.get('StartEvent_1'),
subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
@ -276,11 +257,7 @@ describe('features/modeling - append shape', function() {
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' }),
target = targetShape.businessObject;
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:Task' });
var targetShape2 = modeling.appendShape(targetShape, { type: 'bpmn:UserTask' });
@ -361,12 +338,11 @@ describe('features/modeling - append shape', function() {
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var subProcess = subProcessShape.businessObject;
// when
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:ExclusiveGateway' }),
target = targetShape.businessObject;
target = targetShape.businessObject;
// then
expect(subProcess.get('flowElements')).to.include(target);
@ -379,8 +355,7 @@ describe('features/modeling - append shape', function() {
var startEventShape = elementRegistry.get('StartEvent_1');
var subProcessShape = elementRegistry.get('SubProcess_1');
var startEvent = startEventShape.businessObject,
subProcess = subProcessShape.businessObject;
var subProcess = subProcessShape.businessObject;
var targetShape = modeling.appendShape(startEventShape, { type: 'bpmn:ExclusiveGateway' }),
target = targetShape.businessObject;

View File

@ -38,8 +38,10 @@ describe('features/modeling - move shape', function() {
modeling.moveShape(startEventElement, { x: 0, y: 50 });
// then
expect(startEvent.di.bounds.x).to.equal(oldPosition.x);
expect(startEvent.di.bounds.y).to.equal(oldPosition.y + 50);
expect(startEvent.di).to.have.position({
x: oldPosition.x,
y: oldPosition.y + 50
});
var newWaypoints = sequenceFlowElement.waypoints;
@ -69,8 +71,10 @@ describe('features/modeling - move shape', function() {
modeling.moveShape(labelElement, { x: 0, y: 50 });
// then
expect(startEvent.di.label.bounds.x).to.equal(oldPosition.x);
expect(startEvent.di.label.bounds.y).to.equal(oldPosition.y + 50);
expect(startEvent.di.label).to.have.position({
x: oldPosition.x,
y: oldPosition.y + 50
});
}));
@ -115,8 +119,7 @@ describe('features/modeling - move shape', function() {
commandStack.undo();
// then
expect(startEvent.di.bounds.x).to.equal(oldPosition.x);
expect(startEvent.di.bounds.y).to.equal(oldPosition.y);
expect(startEvent.di).to.have.position(oldPosition);
}));
@ -137,8 +140,7 @@ describe('features/modeling - move shape', function() {
commandStack.undo();
// then
expect(startEvent.di.label.bounds.x).to.equal(oldPosition.x);
expect(startEvent.di.label.bounds.y).to.equal(oldPosition.y);
expect(startEvent.di.label).to.have.position(oldPosition);
}));
});
@ -165,8 +167,7 @@ describe('features/modeling - move shape', function() {
commandStack.redo();
// then
expect(startEvent.di.bounds.x).to.equal(newPosition.x);
expect(startEvent.di.bounds.y).to.equal(newPosition.y);
expect(startEvent.di).to.have.position(newPosition);
}));
@ -188,8 +189,7 @@ describe('features/modeling - move shape', function() {
commandStack.redo();
// then
expect(startEvent.di.label.bounds.x).to.equal(newPosition.x);
expect(startEvent.di.label.bounds.y).to.equal(newPosition.y);
expect(startEvent.di.label).to.have.position(newPosition);
}));
});
@ -215,8 +215,10 @@ describe('features/modeling - move shape', function() {
modeling.moveElements([ startEventElement ], { x: 40, y: -80 });
// then
expect(label.x).to.equal(labelPosition.x + 40);
expect(label.y).to.equal(labelPosition.y - 80);
expect(label).to.have.position({
x: labelPosition.x + 40,
y: labelPosition.y - 80
});
}));
@ -236,8 +238,10 @@ describe('features/modeling - move shape', function() {
modeling.moveElements([ startEventElement, subProcessElement ], { x: 40, y: -80 });
// then
expect(flowLabel.x).to.equal(labelPosition.x + 40);
expect(flowLabel.y).to.equal(labelPosition.y - 80);
expect(flowLabel).to.have.position({
x: labelPosition.x + 40,
y: labelPosition.y - 80
});
}));
@ -261,8 +265,7 @@ describe('features/modeling - move shape', function() {
commandStack.undo();
// then
expect(label.x).to.equal(labelPosition.x);
expect(label.y).to.equal(labelPosition.y);
expect(label).to.have.position(labelPosition);
}));
@ -284,8 +287,7 @@ describe('features/modeling - move shape', function() {
commandStack.undo();
// then
expect(flowLabel.x).to.equal(labelPosition.x);
expect(flowLabel.y).to.equal(labelPosition.y);
expect(flowLabel).to.have.position(labelPosition);
}));
});
@ -312,8 +314,10 @@ describe('features/modeling - move shape', function() {
commandStack.redo();
// then
expect(label.x).to.equal(labelPosition.x + 40);
expect(label.y).to.equal(labelPosition.y - 80);
expect(label).to.have.position({
x: labelPosition.x + 40,
y: labelPosition.y - 80
});
}));
@ -336,8 +340,10 @@ describe('features/modeling - move shape', function() {
commandStack.redo();
// then
expect(flowLabel.x).to.equal(labelPosition.x + 40);
expect(flowLabel.y).to.equal(labelPosition.y - 80);
expect(flowLabel).to.have.position({
x: labelPosition.x + 40,
y: labelPosition.y - 80
});
}));
});

View File

@ -51,11 +51,15 @@ describe('features/modeling - create/remove space', function() {
modeling.createSpace([subProcessElement, endEventElement], [], delta, direction);
// then
expect(subProcess.di.bounds.x).to.equal(subProcOldPos.x + 50);
expect(subProcess.di.bounds.y).to.equal(subProcOldPos.y);
expect(subProcess.di).to.have.position({
x: subProcOldPos.x + 50,
y: subProcOldPos.y
});
expect(endEvent.di.bounds.x).to.equal(endEventOldPos.x + 50);
expect(endEvent.di.bounds.y).to.equal(endEventOldPos.y);
expect(endEvent.di).to.have.position({
x: endEventOldPos.x + 50,
y: endEventOldPos.y
});
var diWaypoints = bpmnFactory.createDiWaypoints([
{ x: 144, y: 230 },
@ -103,14 +107,20 @@ describe('features/modeling - create/remove space', function() {
modeling.createSpace([startEventElement ,subProcessElement, endEventElement], [], delta, direction);
// then
expect(startEvent.di.bounds.x).to.equal(startEventOldPos.x);
expect(startEvent.di.bounds.y).to.equal(startEventOldPos.y + 50);
expect(startEvent.di).to.have.position({
x: startEventOldPos.x,
y: startEventOldPos.y + 50
});
expect(subProcess.di.bounds.x).to.equal(subProcOldPos.x);
expect(subProcess.di.bounds.y).to.equal(subProcOldPos.y + 50);
expect(subProcess.di).to.have.position({
x: subProcOldPos.x,
y: subProcOldPos.y + 50
});
expect(endEvent.di.bounds.x).to.equal(endEventOldPos.x);
expect(endEvent.di.bounds.y).to.equal(endEventOldPos.y + 50);
expect(endEvent.di).to.have.position({
x: endEventOldPos.x,
y: endEventOldPos.y + 50
});
var diWaypoints = bpmnFactory.createDiWaypoints([
{ x: 144, y: 280 },
@ -150,11 +160,15 @@ describe('features/modeling - create/remove space', function() {
modeling.createSpace([subProcessElement, endEventElement], [], delta, direction);
// then
expect(subProcess.di.bounds.x).to.equal(subProcOldPos.x - 50);
expect(subProcess.di.bounds.y).to.equal(subProcOldPos.y);
expect(subProcess.di).to.have.position({
x: subProcOldPos.x - 50,
y: subProcOldPos.y
});
expect(endEvent.di.bounds.x).to.equal(endEventOldPos.x - 50);
expect(endEvent.di.bounds.y).to.equal(endEventOldPos.y);
expect(endEvent.di).to.have.position({
x: endEventOldPos.x - 50,
y: endEventOldPos.y
});
var diWaypoints = bpmnFactory.createDiWaypoints([
{ x: 144, y: 230 },
@ -209,19 +223,27 @@ describe('features/modeling - create/remove space', function() {
modeling.createSpace([startEventElement, startEventElement2, taskElement], [subProcessElement], delta, direction);
// then
expect(subProcess.di.bounds.x).to.equal(subProcOldPos.x + 50);
expect(subProcess.di.bounds.y).to.equal(subProcOldPos.y);
expect(subProcess.di.bounds.width).to.equal(subProcOldPos.width - 50);
expect(subProcess.di.bounds.height).to.equal(subProcOldPos.height);
expect(subProcess.di).to.have.bounds({
x: subProcOldPos.x + 50,
y: subProcOldPos.y,
width: subProcOldPos.width - 50,
height: subProcOldPos.height
});
expect(startEvent.di.bounds.x).to.equal(startEventOldPos.x + 50);
expect(startEvent.di.bounds.y).to.equal(startEventOldPos.y);
expect(startEvent.di).to.have.position({
x: startEventOldPos.x + 50,
y: startEventOldPos.y
});
expect(startEvent2.di.bounds.x).to.equal(startEventOldPos2.x + 50);
expect(startEvent2.di.bounds.y).to.equal(startEventOldPos2.y);
expect(startEvent2.di).to.have.position({
x: startEventOldPos2.x + 50,
y: startEventOldPos2.y
});
expect(task.di.bounds.x).to.equal(taskOldPos.x + 50);
expect(task.di.bounds.y).to.equal(taskOldPos.y);
expect(task.di).to.have.position({
x: taskOldPos.x + 50,
y: taskOldPos.y
});
}));
});

View File

@ -14,13 +14,6 @@ var coreModule = require('../../../../lib/core'),
moveModule = require('diagram-js/lib/features/move'),
rulesModule = require('../../../../lib/features/rules');
var pick = require('lodash/object/pick');
function bounds(element) {
return pick(element, [ 'width', 'height', 'x', 'y' ]);
}
describe('features/snapping - BpmnSnapping', function() {
@ -65,7 +58,7 @@ describe('features/snapping - BpmnSnapping', function() {
var boundaryEvent = elementRegistry.get(task.attachers[0].id);
// then
expect(bounds(boundaryEvent)).to.eql({ x: 364, y: 167, width: 36, height: 36 });
expect(boundaryEvent).to.have.bounds({ x: 364, y: 167, width: 36, height: 36 });
}));
@ -86,7 +79,7 @@ describe('features/snapping - BpmnSnapping', function() {
var boundaryEvent = elementRegistry.get(task.attachers[0].id);
// then
expect(bounds(boundaryEvent)).to.eql({ x: 364, y: 87, width: 36, height: 36 });
expect(boundaryEvent).to.have.bounds({ x: 364, y: 87, width: 36, height: 36 });
}));
});
@ -122,7 +115,7 @@ describe('features/snapping - BpmnSnapping', function() {
dragging.end(canvasEvent({ x: 65, y: 65 }));
// then
expect(bounds(participantShape)).to.eql({
expect(participantShape).to.have.bounds({
width: 600, height: 250, x: 18, y: -8
});
}));
@ -145,7 +138,7 @@ describe('features/snapping - BpmnSnapping', function() {
dragging.end(canvasEvent({ x: 400, y: 400 }));
// then
expect(bounds(participantShape)).to.eql({
expect(participantShape).to.have.bounds({
width: 600, height: 250, x: 100, y: 52
});
}));
@ -181,7 +174,7 @@ describe('features/snapping - BpmnSnapping', function() {
dragging.end(canvasEvent({ x: 400, y: 400 }));
// then
expect(bounds(participantShape)).to.eql({
expect(participantShape).to.have.bounds({
x: 100, y: 275, width: 600, height: 250
});
}));
@ -217,7 +210,7 @@ describe('features/snapping - BpmnSnapping', function() {
dragging.end(canvasEvent({ x: 400, y: 400 }));
// then
expect(bounds(participantShape)).to.eql({
expect(participantShape).to.have.bounds({
x: 100, y: 275, width: 600, height: 250
});
}));

View File

@ -4,13 +4,6 @@ var TestHelper = require('../../../TestHelper');
/* global bootstrapViewer, inject */
var pick = require('lodash/object/pick');
function bounds(element) {
return pick(element, [ 'x', 'y', 'width', 'height' ]);
}
describe('import - labels', function() {
@ -55,8 +48,8 @@ describe('import - labels', function() {
sequenceFlow = elementRegistry.get('SequenceFlow_1');
// then
expect(bounds(endEvent.label)).to.eql({ x: 211, y: 256, width: 119, height: 44 });
expect(bounds(sequenceFlow.label)).to.eql({ x: 432, y: 317, width: 99, height: 22 });
expect(endEvent.label).to.have.bounds({ x: 211, y: 256, width: 119, height: 44 });
expect(sequenceFlow.label).to.have.bounds({ x: 432, y: 317, width: 99, height: 22 });
done();
})();