'use strict'; var Helper = require('./Helper'); /* global bootstrapModeler, inject */ var move = Helper.move, expectZOrder = Helper.expectZOrder; var modelingModule = require('../../../../lib/features/modeling'), coreModule = require('../../../../lib/core'); describe('features/modeling - ordering', function() { var testModules = [ coreModule, modelingModule ]; describe('boundary events', function() { var diagramXML = require('./ordering.bpmn'); beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); it('should stay in front of Task', inject(function() { // when move('Task_With_Boundary'); // then expectZOrder('Task_With_Boundary', 'BoundaryEvent'); })); it('should stay in front of Task, moving both', inject(function() { // when move([ 'BoundaryEvent', 'Task_With_Boundary' ], 'Participant_StartEvent'); // then expectZOrder('Task_With_Boundary', 'BoundaryEvent'); })); }); describe('participants', function() { var diagramXML = require('./ordering.bpmn'); beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); it('should stay behind MessageFlow', inject(function() { // when move('Participant', 'Collaboration'); // then expectZOrder('Participant_StartEvent', 'Participant', 'MessageFlow'); })); }); describe('sub processes', function() { var diagramXML = require('./ordering-subprocesses.bpmn'); beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); it('should stay behind boundary events', inject(function() { // when move('BoundaryEvent_1', { x: 50, y: 0 }, 'SubProcess_1', true); // then expectZOrder('SubProcess_1', 'BoundaryEvent_1'); })); it('should stay behind tasks', inject(function() { // when move(['Task_1', 'Task_2'], { x: 50, y: 0 }, 'SubProcess_1'); // then expectZOrder('SubProcess_1', 'Task_1', 'Task_2'); })); it('should be in front of tasks if task is not a child', inject(function() { // when move(['Task_1', 'Task_2'], { x: 200, y: 0 }, 'Root'); // then expectZOrder('Task_1', 'Task_2', 'SubProcess_1'); })); }); });