bpmn-js/test/spec/features/align-elements/BpmnAlignElementsSpec.js

137 lines
4.0 KiB
JavaScript

import {
bootstrapModeler,
inject
} from 'test/TestHelper';
import alignElementsModule from 'diagram-js/lib/features/align-elements';
import modelingModule from 'lib/features/modeling';
import coreModule from 'lib/core';
describe('features/align-elements', function() {
var testModules = [ alignElementsModule, modelingModule, coreModule ];
var basicXML = require('../../../fixtures/bpmn/align-elements.bpmn');
beforeEach(bootstrapModeler(basicXML, { modules: testModules }));
describe('integration', function() {
it('should align to the left', inject(function(elementRegistry, alignElements) {
// given
var taskBoundEvt = elementRegistry.get('Task_boundary_evt'),
task = elementRegistry.get('Task_lane'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ taskBoundEvt, task, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'left');
// then
expect(taskBoundEvt.x).to.equal(136);
expect(task.x).to.equal(136);
expect(subProcess.x).to.equal(136);
expect(endEvent.x).to.equal(136);
}));
it('should align to the right', inject(function(elementRegistry, alignElements) {
// given
var taskHello = elementRegistry.get('Task_hello'),
task = elementRegistry.get('Task_lane'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ taskHello, task, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'right');
// then
expect(task.x).to.equal(720);
expect(taskHello.x).to.equal(720);
expect(subProcess.x).to.equal(470);
expect(endEvent.x).to.equal(784);
}));
it('should align to the center', inject(function(elementRegistry, alignElements) {
// given
var task = elementRegistry.get('Task_lane'),
taskHello = elementRegistry.get('Task_hello'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ task, taskHello, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'center');
// then
expect(task.x).to.equal(428);
expect(taskHello.x).to.equal(428);
expect(subProcess.x).to.equal(303);
expect(endEvent.x).to.equal(460);
}));
it('should align to the top', inject(function(elementRegistry, alignElements) {
// given
var task = elementRegistry.get('Task_lane'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ task, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'top');
// then
expect(task.y).to.equal(375);
expect(subProcess.y).to.equal(375);
expect(endEvent.y).to.equal(375);
}));
it('should align to the bottom', inject(function(elementRegistry, alignElements) {
// given
var task = elementRegistry.get('Task_lane'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ task, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'bottom');
// then
expect(task.y).to.equal(761);
expect(subProcess.y).to.equal(641);
expect(endEvent.y).to.equal(805);
}));
it('should align to the middle', inject(function(elementRegistry, alignElements) {
// given
var task = elementRegistry.get('Task_lane'),
subProcess = elementRegistry.get('SubProcess_lane'),
endEvent = elementRegistry.get('EndEvent_lane'),
elements = [ task, subProcess, endEvent ];
// when
alignElements.trigger(elements, 'middle');
// then
expect(task.y).to.equal(568);
expect(subProcess.y).to.equal(508);
expect(endEvent.y).to.equal(590);
}));
});
});