From 8cc4d2ce98ad5d2d87630ea4134bb6f9cb8931c5 Mon Sep 17 00:00:00 2001 From: Jarek Danielak Date: Wed, 22 Jan 2025 13:57:22 +0100 Subject: [PATCH] feat: support `bpmn:AdHocSubProcess` Related to https://github.com/camunda/camunda-modeler/issues/4739 --- rules/camunda-cloud/element-type/config.js | 3 +- .../camunda-cloud-8-3-element-type.spec.js | 2 + .../camunda-cloud-8-6-element-type.spec.js | 43 +++++++++++++++++++ .../camunda-cloud-8-7-element-type.spec.js | 29 +++++++++++++ 4 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 test/camunda-cloud/camunda-cloud-8-6-element-type.spec.js create mode 100644 test/camunda-cloud/camunda-cloud-8-7-element-type.spec.js diff --git a/rules/camunda-cloud/element-type/config.js b/rules/camunda-cloud/element-type/config.js index 76400fb7..440821aa 100644 --- a/rules/camunda-cloud/element-type/config.js +++ b/rules/camunda-cloud/element-type/config.js @@ -63,5 +63,6 @@ module.exports = { 'bpmn:SubProcess': '1.0', 'bpmn:Task': '8.2', 'bpmn:TextAnnotation': '1.0', - 'bpmn:UserTask': '1.0' + 'bpmn:UserTask': '1.0', + 'bpmn:AdHocSubProcess': '8.7', }; \ No newline at end of file diff --git a/test/camunda-cloud/camunda-cloud-8-3-element-type.spec.js b/test/camunda-cloud/camunda-cloud-8-3-element-type.spec.js index 87c3cc16..5db7cf46 100644 --- a/test/camunda-cloud/camunda-cloud-8-3-element-type.spec.js +++ b/test/camunda-cloud/camunda-cloud-8-3-element-type.spec.js @@ -119,6 +119,8 @@ const valid = [ } ]; +module.exports.valid = valid; + const invalid = [ { name: 'boundary event (no event definition)', diff --git a/test/camunda-cloud/camunda-cloud-8-6-element-type.spec.js b/test/camunda-cloud/camunda-cloud-8-6-element-type.spec.js new file mode 100644 index 00000000..55ac3531 --- /dev/null +++ b/test/camunda-cloud/camunda-cloud-8-6-element-type.spec.js @@ -0,0 +1,43 @@ +const RuleTester = require('bpmnlint/lib/testers/rule-tester'); + +const rule = require('../../rules/camunda-cloud/element-type'); + +const { + withConfig, + createModdle, + createProcess +} = require('../helper'); + +const { ERROR_TYPES } = require('../../rules/utils/element'); + +const valid = [ + ...require('./camunda-cloud-8-3-element-type.spec').valid +]; + +module.exports.valid = valid; + +const invalid = [ + { + name: 'ad-hoc subprocess', + moddleElement: createModdle(createProcess(` + + + `)), + report: { + id: 'Subprocess_1', + message: 'Element of type only allowed by Camunda 8.7 or newer', + path: null, + data: { + type: ERROR_TYPES.ELEMENT_TYPE_NOT_ALLOWED, + node: 'Subprocess_1', + parentNode: null, + allowedVersion: '8.7' + } + } + } +]; + +RuleTester.verify('camunda-cloud-8-6-element-type', rule, { + valid: withConfig(valid, { version: '8.6' }), + invalid: withConfig(invalid, { version: '8.6' }), +}); diff --git a/test/camunda-cloud/camunda-cloud-8-7-element-type.spec.js b/test/camunda-cloud/camunda-cloud-8-7-element-type.spec.js new file mode 100644 index 00000000..213bb228 --- /dev/null +++ b/test/camunda-cloud/camunda-cloud-8-7-element-type.spec.js @@ -0,0 +1,29 @@ +const RuleTester = require('bpmnlint/lib/testers/rule-tester'); + +const rule = require('../../rules/camunda-cloud/element-type'); + +const { + withConfig, + createModdle, + createProcess +} = require('../helper'); + +const valid = [ + ...require('./camunda-cloud-8-6-element-type.spec').valid, + { + name: 'ad-hoc subprocess', + moddleElement: createModdle(createProcess(` + + + + + + + `)) + } +]; + +RuleTester.verify('camunda-cloud-8-7-element-type', rule, { + valid: withConfig(valid, { version: '8.7' }), + invalid: [] +});