+
+
+
+
+
+
+
+ `);
+
+ bpmnjs._container.appendChild(panel);
+
+
+ // then
+ expect(result.error).not.to.exist;
+ });
+
+ (singleStart === 'templates' ? it.only : it)('should import simple process (templates)', async function() {
+
+ // given
+ const diagramXml = require('test/spec/element-templates/fixtures/complex.bpmn').default;
+
+ const elementTemplateContext = require.context('test/spec/element-templates/fixtures', false, /\.json$/);
+
+ const elementTemplates = elementTemplateContext.keys().map(key => elementTemplateContext(key)).flat();
+
+ // when
+ const result = await createModeler(
+ diagramXml,
+ {
+ additionalModules: [
+ CamundaBehaviorsModule,
+ BpmnPropertiesPanelModule,
+ BpmnPropertiesProviderModule,
+ ElementTemplateChooserModule,
+ ElementTemplatesPropertiesProviderModule
+ ],
+ moddleExtensions: {
+ camunda: CamundaModdle
+ },
+ elementTemplates
+ }
+ );
+
+ // then
+ expect(result.error).not.to.exist;
+ });
+});
+
+
+const escapeHtml = (unsafe) => {
+ return unsafe.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
+};
diff --git a/test/spec/cloud-element-templates/LinterPlugin.spec.js b/test/spec/cloud-element-templates/LinterPlugin.spec.js
new file mode 100644
index 0000000..83ce1e9
--- /dev/null
+++ b/test/spec/cloud-element-templates/LinterPlugin.spec.js
@@ -0,0 +1,142 @@
+import RuleTester from 'bpmnlint/lib/testers/rule-tester';
+
+import { elementTemplateLintRule } from 'src/cloud-element-templates/LinterPlugin.js';
+
+import {
+ createModdle,
+ createProcess
+} from '../../TestHelper';
+
+import templates from './fixtures/constraints.json';
+
+const valid = [
+ {
+ name: 'Valid Template',
+ moddleElement: createModdle(createProcess('