Skip to content

Commit

Permalink
fix(no-version-tag): do not lint zeebe:versionTag attribute
Browse files Browse the repository at this point in the history
An error will be reported by the `no-binding-type` rule so we don't need another error for the version tag itself.

Related to camunda/camunda-modeler#4519
  • Loading branch information
philippfromme committed Sep 11, 2024
1 parent b2233c1 commit d64e2e3
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 228 deletions.
27 changes: 1 addition & 26 deletions rules/camunda-cloud/no-version-tag.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { is } = require('bpmnlint-utils');

const { hasProperties, findExtensionElement, hasNoExtensionElement } = require('../utils/element');
const { hasNoExtensionElement } = require('../utils/element');

const { reportErrors } = require('../utils/reporter');

Expand All @@ -16,31 +16,6 @@ module.exports = skipInNonExecutableProcess(function() {
if (errors && errors.length) {
reportErrors(node, reporter, errors);
}

return;
}

let extensionElement;

if (is(node, 'bpmn:BusinessRuleTask')) {
extensionElement = findExtensionElement(node, 'zeebe:CalledDecision');
} else if (is(node, 'bpmn:CallActivity')) {
extensionElement = findExtensionElement(node, 'zeebe:CalledElement');
} else if (is(node, 'bpmn:UserTask')) {
extensionElement = findExtensionElement(node, 'zeebe:FormDefinition');
}

if (extensionElement) {
const errors = hasProperties(extensionElement, {
versionTag: {
allowed: false,
allowedVersion
}
}, node);

if (errors && errors.length) {
reportErrors(node, reporter, errors);
}
}
}

Expand Down
29 changes: 2 additions & 27 deletions test/camunda-cloud/integration/no-version-tag-errors.bpmn
Original file line number Diff line number Diff line change
@@ -1,36 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0949dru" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.26.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.5.0">
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0949dru" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.27.0-rc.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.5.0">
<bpmn:process id="Process_1" isExecutable="true">
<bpmn:extensionElements>
<zeebe:versionTag value="v1.0.0" />
</bpmn:extensionElements>
<bpmn:callActivity id="CallActivity_1">
<bpmn:extensionElements>
<zeebe:calledElement processId="foo" propagateAllChildVariables="false" bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:callActivity>
<bpmn:businessRuleTask id="BusinessRuleTask_1">
<bpmn:extensionElements>
<zeebe:calledDecision decisionId="foo" resultVariable="foo" bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:businessRuleTask>
<bpmn:userTask id="UserTask_1">
<bpmn:extensionElements>
<zeebe:formDefinition formId="foo" bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:userTask>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNShape id="Activity_04qoo0e_di" bpmnElement="CallActivity_1">
<dc:Bounds x="160" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0rpa9kq_di" bpmnElement="BusinessRuleTask_1">
<dc:Bounds x="290" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1t7eh0a_di" bpmnElement="UserTask_1">
<dc:Bounds x="420" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1" />
</bpmndi:BPMNDiagram>
</bpmn:definitions>
32 changes: 3 additions & 29 deletions test/camunda-cloud/integration/no-version-tag.bpmn
Original file line number Diff line number Diff line change
@@ -1,33 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0949dru" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.26.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.5.0">
<bpmn:process id="Process_1" isExecutable="true">
<bpmn:callActivity id="CallActivity_1">
<bpmn:extensionElements>
<zeebe:calledElement processId="foo" propagateAllChildVariables="false" bindingType="deployment" />
</bpmn:extensionElements>
</bpmn:callActivity>
<bpmn:businessRuleTask id="BusinessRuleTask_1">
<bpmn:extensionElements>
<zeebe:calledDecision decisionId="foo" resultVariable="foo" bindingType="deployment" />
</bpmn:extensionElements>
</bpmn:businessRuleTask>
<bpmn:userTask id="UserTask_1">
<bpmn:extensionElements>
<zeebe:formDefinition formId="foo" bindingType="deployment" />
</bpmn:extensionElements>
</bpmn:userTask>
</bpmn:process>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0949dru" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.27.0-rc.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.5.0">
<bpmn:process id="Process_1" isExecutable="true" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNShape id="Activity_04qoo0e_di" bpmnElement="CallActivity_1">
<dc:Bounds x="160" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0rpa9kq_di" bpmnElement="BusinessRuleTask_1">
<dc:Bounds x="290" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1t7eh0a_di" bpmnElement="UserTask_1">
<dc:Bounds x="420" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1" />
</bpmndi:BPMNDiagram>
</bpmn:definitions>
149 changes: 3 additions & 146 deletions test/camunda-cloud/no-version-tag.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ const rule = require('../../rules/camunda-cloud/no-version-tag');

const {
createDefinitions,
createModdle,
createProcess
createModdle
} = require('../helper');

const { ERROR_TYPES } = require('../../rules/utils/element');
Expand All @@ -19,71 +18,13 @@ const valid = [
`))
},
{
name: 'business rule task',
moddleElement: createModdle(createProcess(`
<bpmn:businessRuleTask id="BusinessRuleTask_1">
<bpmn:extensionElements>
<zeebe:calledDecision bindingType="deployment" />
</bpmn:extensionElements>
</bpmn:businessRuleTask>
`))
},
{
name: 'business rule task (version tag) (non-executable process)',
name: 'process (version tag) (non-executable process)',
config: { version: '8.5' },
moddleElement: createModdle(createDefinitions(`
<bpmn:process id="Process_1">
<bpmn:businessRuleTask id="BusinessRuleTask_1">
<bpmn:extensionElements>
<zeebe:calledDecision bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:businessRuleTask>
</bpmn:process>
`))
},
{
name: 'call activity',
moddleElement: createModdle(createProcess(`
<bpmn:callActivity id="CallActivity_1">
<bpmn:extensionElements>
<zeebe:calledElement bindingType="deployment" />
</bpmn:extensionElements>
</bpmn:callActivity>
`))
},
{
name: 'call activity (version tag) (non-executable process)',
config: { version: '8.5' },
moddleElement: createModdle(createDefinitions(`
<bpmn:process id="Process_1">
<bpmn:callActivity id="CallActivity_1">
<bpmn:extensionElements>
<zeebe:calledElement bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:callActivity>
</bpmn:process>
`))
},
{
name: 'user task',
moddleElement: createModdle(createProcess(`
<bpmn:userTask id="UserTask_1">
<bpmn:extensionElements>
<zeebe:formDefinition bindingType="deployment" />
<zeebe:versionTag value="v1.0.0" />
</bpmn:extensionElements>
</bpmn:userTask>
`))
},
{
name: 'user task (version tag) (non-executable process)',
config: { version: '8.5' },
moddleElement: createModdle(createDefinitions(`
<bpmn:process id="Process_1">
<bpmn:userTask id="UserTask_1">
<bpmn:extensionElements>
<zeebe:formDefinition bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:userTask>
</bpmn:process>
`))
}
Expand Down Expand Up @@ -116,90 +57,6 @@ const invalid = [
allowedVersion: '8.6'
}
}
},
{
name: 'business rule task (version tag)',
config: { version: '8.5' },
moddleElement: createModdle(createProcess(`
<bpmn:businessRuleTask id="BusinessRuleTask_1">
<bpmn:extensionElements>
<zeebe:calledDecision bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:businessRuleTask>
`)),
report: {
id: 'BusinessRuleTask_1',
message: 'Property <versionTag> only allowed by Camunda 8.6 or newer',
path: [
'extensionElements',
'values',
0,
'versionTag'
],
data: {
type: ERROR_TYPES.PROPERTY_NOT_ALLOWED,
node: 'zeebe:CalledDecision',
parentNode: 'BusinessRuleTask_1',
property: 'versionTag',
allowedVersion: '8.6'
}
}
},
{
name: 'call activity (version tag)',
config: { version: '8.5' },
moddleElement: createModdle(createProcess(`
<bpmn:callActivity id="CallActivity_1">
<bpmn:extensionElements>
<zeebe:calledElement bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:callActivity>
`)),
report: {
id: 'CallActivity_1',
message: 'Property <versionTag> only allowed by Camunda 8.6 or newer',
path: [
'extensionElements',
'values',
0,
'versionTag'
],
data: {
type: ERROR_TYPES.PROPERTY_NOT_ALLOWED,
node: 'zeebe:CalledElement',
parentNode: 'CallActivity_1',
property: 'versionTag',
allowedVersion: '8.6'
}
}
},
{
name: 'user task (version tag)',
config: { version: '8.5' },
moddleElement: createModdle(createProcess(`
<bpmn:userTask id="UserTask_1">
<bpmn:extensionElements>
<zeebe:formDefinition bindingType="versionTag" versionTag="v1.0.0" />
</bpmn:extensionElements>
</bpmn:userTask>
`)),
report: {
id: 'UserTask_1',
message: 'Property <versionTag> only allowed by Camunda 8.6 or newer',
path: [
'extensionElements',
'values',
0,
'versionTag'
],
data: {
type: ERROR_TYPES.PROPERTY_NOT_ALLOWED,
node: 'zeebe:FormDefinition',
parentNode: 'UserTask_1',
property: 'versionTag',
allowedVersion: '8.6'
}
}
}
];

Expand Down

0 comments on commit d64e2e3

Please sign in to comment.