fixes to add and update script unit tests w/ burnettk

This commit is contained in:
jasquat 2022-09-27 17:40:12 -04:00
parent 28eccc0d00
commit 19cc2e3961
2 changed files with 24 additions and 3 deletions

View File

@ -1,6 +1,9 @@
import { useService } from 'bpmn-js-properties-panel'; import { useService } from 'bpmn-js-properties-panel';
import { TextFieldEntry, TextAreaEntry } from '@bpmn-io/properties-panel'; import { TextFieldEntry, TextAreaEntry } from '@bpmn-io/properties-panel';
import { removeFirstInstanceOfItemFromArrayInPlace } from '../../helpers'; import {
removeFirstInstanceOfItemFromArrayInPlace,
removeExtensionElementsIfEmpty,
} from '../../helpers';
const getScriptUnitTestsModdleElement = (shapeElement) => { const getScriptUnitTestsModdleElement = (shapeElement) => {
const bizObj = shapeElement.businessObject; const bizObj = shapeElement.businessObject;
@ -21,7 +24,7 @@ const getScriptUnitTestModdleElements = (shapeElement) => {
const scriptUnitTestsModdleElement = const scriptUnitTestsModdleElement =
getScriptUnitTestsModdleElement(shapeElement); getScriptUnitTestsModdleElement(shapeElement);
if (scriptUnitTestsModdleElement) { if (scriptUnitTestsModdleElement) {
return scriptUnitTestsModdleElement.unitTests; return scriptUnitTestsModdleElement.unitTests || [];
} }
return []; return [];
}; };
@ -89,6 +92,10 @@ export function ScriptUnitTestArray(props) {
scriptUnitTestModdleElement.inputJson = scriptUnitTestInputModdleElement; scriptUnitTestModdleElement.inputJson = scriptUnitTestInputModdleElement;
scriptUnitTestModdleElement.expectedOutputJson = scriptUnitTestModdleElement.expectedOutputJson =
scriptUnitTestOutputModdleElement; scriptUnitTestOutputModdleElement;
if (!scriptUnitTestsModdleElement.unitTests) {
scriptUnitTestsModdleElement.unitTests = [];
}
scriptUnitTestsModdleElement.unitTests.push(scriptUnitTestModdleElement); scriptUnitTestsModdleElement.unitTests.push(scriptUnitTestModdleElement);
commandStack.execute('element.updateProperties', { commandStack.execute('element.updateProperties', {
element, element,
@ -100,7 +107,7 @@ export function ScriptUnitTestArray(props) {
} }
function removeFactory(props) { function removeFactory(props) {
const { element, scriptUnitTestModdleElement, moddle, commandStack } = props; const { element, scriptUnitTestModdleElement, commandStack } = props;
return function (event) { return function (event) {
event.stopPropagation(); event.stopPropagation();
@ -110,6 +117,14 @@ function removeFactory(props) {
scriptUnitTestsModdleElement.unitTests, scriptUnitTestsModdleElement.unitTests,
scriptUnitTestModdleElement scriptUnitTestModdleElement
); );
if (scriptUnitTestsModdleElement.unitTests.length < 1) {
const scriptTaskModdleElement = element.businessObject;
removeFirstInstanceOfItemFromArrayInPlace(
scriptTaskModdleElement.extensionElements.values,
scriptUnitTestsModdleElement
);
removeExtensionElementsIfEmpty(scriptTaskModdleElement);
}
commandStack.execute('element.updateProperties', { commandStack.execute('element.updateProperties', {
element, element,
properties: {}, properties: {},

View File

@ -6,3 +6,9 @@ export function removeFirstInstanceOfItemFromArrayInPlace(arr, value) {
} }
return arr; return arr;
} }
export function removeExtensionElementsIfEmpty(moddleElement) {
if (moddleElement.extensionElements.values.length < 1) {
moddleElement.extensionElements = null;
}
}