diff --git a/lib/utils/documentation.js b/lib/utils/documentation.js index 8c8c110..96c0ff9 100644 --- a/lib/utils/documentation.js +++ b/lib/utils/documentation.js @@ -25,6 +25,10 @@ export function getDocumentationUrl(rule) { return getUrl('message-reference'); } + if (rule === 'camunda-compat/history-time-to-live') { + return getUrl('history-time-to-live'); + } + return null; } diff --git a/lib/utils/properties-panel.js b/lib/utils/properties-panel.js index ec2caf7..13317c8 100644 --- a/lib/utils/properties-panel.js +++ b/lib/utils/properties-panel.js @@ -472,10 +472,6 @@ export function getErrorMessage(id, report) { return 'Not supported.'; } - if (id === 'historyTimeToLive') { - return 'Time to live must be defined.'; - } - if (id === 'taskScheduleDueDate') { if (data.type === ERROR_TYPES.EXTENSION_ELEMENT_NOT_ALLOWED) { return 'Not supported.'; diff --git a/test/spec/modeler/Linting.spec.js b/test/spec/modeler/Linting.spec.js index f2a14ed..6fa97fe 100644 --- a/test/spec/modeler/Linting.spec.js +++ b/test/spec/modeler/Linting.spec.js @@ -175,13 +175,21 @@ describe('Linting', function() { container.innerHTML = ''; reports.map((report) => { - const { id, message, category, rule } = report; + const { id, message, category, rule, documentation } = report; if (category === 'rule-error') { - return domify(`
Rule error: Rule <${ escapeHTML(rule) }> errored with the following message: ${ escapeHTML(message) }
`); + return domify(`
${ category } Rule <${ escapeHTML(rule) }> errored with the following message: ${ escapeHTML(message) }
`); } - const element = domify(`
${ id }: ${escapeHTML(message) }
`); + const element = domify(`
${ category } ${ id }: ${escapeHTML(message) }
`); + + if (documentation.url) { + const documentationLink = domify(`ref`); + + documentationLink.addEventListener('click', e => e.stopPropagation()); + + element.appendChild(documentationLink); + } element.addEventListener('click', () => { linting.showError(report); diff --git a/test/spec/utils/error-messages.spec.js b/test/spec/utils/error-messages.spec.js index 5a32750..555ccb8 100644 --- a/test/spec/utils/error-messages.spec.js +++ b/test/spec/utils/error-messages.spec.js @@ -4,8 +4,7 @@ import { } from '../../../lib/utils/error-messages'; import { - createElement, - createElementCamundaPlatform + createElement } from '../../helper'; import { @@ -2022,31 +2021,6 @@ describe('utils/error-messages', function() { }); - - describe('Camunda Platform (Camunda 7)', function() { - - describe('property required', function() { - - it('should adjust (history time to live)', async function() { - - // given - const node = createElementCamundaPlatform('bpmn:Process'); - - const { default: rule } = await import('bpmnlint-plugin-camunda-compat/rules/camunda-platform/history-time-to-live'); - - const report = await getLintError(node, rule, { version: '7.19' }); - - // when - const errorMessage = getErrorMessage(report); - - // then - expect(errorMessage).to.equal('A must have a defined '); - }); - - }); - - }); - }); describe('#getExecutionPlatformLabel', function() { diff --git a/test/spec/utils/properties-panel.spec.js b/test/spec/utils/properties-panel.spec.js index cbc302f..75064f1 100644 --- a/test/spec/utils/properties-panel.spec.js +++ b/test/spec/utils/properties-panel.spec.js @@ -8,9 +8,7 @@ import { import { createElement, - createElementCamundaPlatform, - createModdle, - createModdleCamundaPlatform + createModdle } from '../../helper'; import { @@ -20,7 +18,6 @@ import { import propertiesPanelXML from './properties-panel.bpmn'; import propertiesPanelInfoXML from './properties-panel-info.bpmn'; -import propertiesPanelPlatformXML from './properties-panel-platform.bpmn'; describe('utils/properties-panel', function() { @@ -1918,61 +1915,9 @@ describe('utils/properties-panel', function() { }); - - describe('Camunda Platform (Camunda 7)', function() { - - describe('#getEntryId and #getErrorMessage', function() { - - it('History cleanup (no time to live)', async function() { - - // given - const node = createElementCamundaPlatform('bpmn:Process', { isExecutable: true }); - - const { default: rule } = await import('bpmnlint-plugin-camunda-compat/rules/camunda-platform/history-time-to-live'); - - const report = await getLintError(node, rule, { platform: 'camunda-platform', version: '7.19' }); - - // when - const entryIds = getEntryIds(report); - - // then - expect(entryIds).to.eql([ 'historyTimeToLive' ]); - - - expectErrorMessage(entryIds[ 0 ], 'Time to live must be defined.', report); - }); - - }); - - - describe('#getErrors', function() { - - it('should return errors', async function() { - - // given - const linter = new Linter(); - - const { root } = await createModdleCamundaPlatform(propertiesPanelPlatformXML); - - const reports = await linter.lint(root); - - // when - let element = root.rootElements[ 0 ]; - - let errors = getErrors(reports, element); - - // then - expect(errors).to.eql({ - historyTimeToLive: 'Time to live must be defined.' - }); - }); - - }); - - }); - }); + function expectErrorMessage(id, expectedErrorMessage, report) { // when