272 lines
7.3 KiB
JavaScript
272 lines
7.3 KiB
JavaScript
'use strict';
|
|
|
|
require('../../../../TestHelper');
|
|
|
|
/* global bootstrapModeler, inject */
|
|
|
|
|
|
var modelingModule = require('../../../../../lib/features/modeling'),
|
|
coreModule = require('../../../../../lib/core');
|
|
|
|
|
|
describe('features/modeling - lanes - flowNodeRefs', function() {
|
|
|
|
var diagramXML = require('./flowNodeRefs.bpmn');
|
|
|
|
var testModules = [ coreModule, modelingModule ];
|
|
|
|
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
|
|
|
|
|
|
describe('should unwire during move', function() {
|
|
|
|
it('execute', inject(function(elementRegistry, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
sourceLaneShape = elementRegistry.get('Lane'),
|
|
sourceLane = sourceLaneShape.businessObject,
|
|
targetParticipantShape = elementRegistry.get('Participant_B');
|
|
|
|
// when
|
|
modeling.moveElements([ taskShape ], { x: 0, y: +200 }, targetParticipantShape);
|
|
|
|
// then
|
|
expect(sourceLane.flowNodeRef).not.to.contain(task);
|
|
}));
|
|
|
|
|
|
it('undo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
sourceLaneShape = elementRegistry.get('Lane'),
|
|
sourceLane = sourceLaneShape.businessObject,
|
|
targetParticipantShape = elementRegistry.get('Participant_B');
|
|
|
|
modeling.moveElements([ taskShape ], { x: 0, y: +200 }, targetParticipantShape);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
|
|
// then
|
|
expect(sourceLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
|
|
it('redo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
sourceLaneShape = elementRegistry.get('Lane'),
|
|
sourceLane = sourceLaneShape.businessObject,
|
|
targetParticipantShape = elementRegistry.get('Participant_B');
|
|
|
|
modeling.moveElements([ taskShape ], { x: 0, y: +200 }, targetParticipantShape);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
commandStack.redo();
|
|
|
|
// then
|
|
expect(sourceLane.flowNodeRef).to.not.contain(task);
|
|
}));
|
|
|
|
});
|
|
|
|
|
|
describe('should wire during move', function() {
|
|
|
|
it('execute', inject(function(elementRegistry, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_B'),
|
|
task = taskShape.businessObject,
|
|
targetLaneShape = elementRegistry.get('Lane'),
|
|
targetLane = targetLaneShape.businessObject;
|
|
|
|
// when
|
|
modeling.moveElements([ taskShape ], { x: 0, y: -200 }, targetLaneShape);
|
|
|
|
// then
|
|
expect(targetLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
|
|
it('undo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_B'),
|
|
task = taskShape.businessObject,
|
|
targetLaneShape = elementRegistry.get('Lane'),
|
|
targetLane = targetLaneShape.businessObject;
|
|
|
|
modeling.moveElements([ taskShape ], { x: 0, y: -200 }, targetLaneShape);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
|
|
// then
|
|
expect(targetLane.flowNodeRef).not.to.contain(task);
|
|
}));
|
|
|
|
|
|
it('redo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_B'),
|
|
task = taskShape.businessObject,
|
|
targetLaneShape = elementRegistry.get('Lane'),
|
|
targetLane = targetLaneShape.businessObject;
|
|
|
|
modeling.moveElements([ taskShape ], { x: 0, y: -200 }, targetLaneShape);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
commandStack.redo();
|
|
|
|
// then
|
|
expect(targetLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
});
|
|
|
|
|
|
describe('should unwire during delete', function() {
|
|
|
|
it('execute', inject(function(elementRegistry, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
// when
|
|
modeling.removeElements([ taskShape ]);
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).not.to.contain(task);
|
|
}));
|
|
|
|
|
|
it('undo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
modeling.removeElements([ taskShape ]);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
|
|
it('redo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
modeling.removeElements([ taskShape ]);
|
|
|
|
// when
|
|
commandStack.undo();
|
|
commandStack.redo();
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).not.to.contain(task);
|
|
}));
|
|
|
|
});
|
|
|
|
|
|
describe('should wire during create', function() {
|
|
|
|
it('execute', inject(function(elementRegistry, modeling) {
|
|
|
|
// given
|
|
var taskShape, task,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
// when
|
|
taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape);
|
|
task = taskShape.businessObject;
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
|
|
it('undo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape, task,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape);
|
|
task = taskShape.businessObject;
|
|
|
|
// when
|
|
commandStack.undo();
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).not.to.contain(task);
|
|
}));
|
|
|
|
|
|
it('redo', inject(function(elementRegistry, commandStack, modeling) {
|
|
|
|
// given
|
|
var taskShape, task,
|
|
parentLaneShape = elementRegistry.get('Lane'),
|
|
parentLane = parentLaneShape.businessObject;
|
|
|
|
taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape);
|
|
task = taskShape.businessObject;
|
|
|
|
// when
|
|
commandStack.undo();
|
|
commandStack.redo();
|
|
|
|
// then
|
|
expect(parentLane.flowNodeRef).to.contain(task);
|
|
}));
|
|
|
|
});
|
|
|
|
|
|
it('should unwire moving multiple', inject(function(elementRegistry, modeling) {
|
|
|
|
// given
|
|
var taskShape = elementRegistry.get('Task_A'),
|
|
task = taskShape.businessObject,
|
|
eventShape = elementRegistry.get('Event'),
|
|
event = eventShape.businessObject,
|
|
targetParticipantShape = elementRegistry.get('Participant_B'),
|
|
sourceLaneShape = elementRegistry.get('Lane'),
|
|
sourceLane = sourceLaneShape.businessObject;
|
|
|
|
// when
|
|
modeling.moveElements([ taskShape, eventShape ], { x: 0, y: +200 }, targetParticipantShape);
|
|
|
|
// then
|
|
expect(sourceLane.flowNodeRef).not.to.contain(task);
|
|
expect(sourceLane.flowNodeRef).not.to.contain(event);
|
|
}));
|
|
|
|
});
|