bpmn-js-properties-panel
Version:
A simple properties panel for bpmn-js
89 lines (62 loc) • 2.25 kB
JavaScript
;
var TestHelper = require('../../../../../TestHelper');
var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject;
var slice = Array.prototype.slice;
function entrySelect(entryId, childSelector, all) {
return TestHelper.getBpmnJS().invoke(function(propertiesPanel) {
var container = propertiesPanel._container;
var entry = container.querySelector('[data-entry="' + entryId + '"]');
var result;
if (!entry) {
return all ? [] : null;
} else {
if (childSelector) {
result = entry[all ? 'querySelectorAll' : 'querySelector'](childSelector);
return all ? slice.call(result) : result;
} else {
return all ? [ entry ] : entry;
}
}
});
}
entrySelect.all = function(entryId, childSelector) {
return entrySelect(entryId, childSelector, true);
};
module.exports.entrySelect = entrySelect;
function selectAndGet(elementId) {
return TestHelper.getBpmnJS().invoke(function(selection, elementRegistry) {
var element = elementRegistry.get(elementId);
expect(element).to.exist;
selection.select(element);
return getBusinessObject(element);
});
}
module.exports.selectAndGet = selectAndGet;
var propertiesPanelModule = require('../../../../../../lib'),
coreModule = require('bpmn-js/lib/core'),
selectionModule = require('diagram-js/lib/features/selection'),
modelingModule = require('bpmn-js/lib/features/modeling'),
propertiesProviderModule = require('../../../../../../lib/provider/camunda');
var testModules = [
coreModule,
selectionModule,
modelingModule,
propertiesPanelModule,
propertiesProviderModule
];
var camundaModdlePackage = require('camunda-bpmn-moddle/resources/camunda');
function bootstrap(diagramXML, elementTemplates) {
return function(done) {
TestHelper.bootstrapModeler(diagramXML, {
modules: testModules,
elementTemplates: elementTemplates,
moddleExtensions: {
camunda: camundaModdlePackage
},
propertiesPanel: {
parent: document.querySelector('body')
}
})(done);
};
}
module.exports.bootstrap = bootstrap;