import TestContainer from 'mocha-test-container-support'; import { BpmnPropertiesPanelModule, BpmnPropertiesProviderModule, } from 'bpmn-js-properties-panel'; import { bootstrapPropertiesPanel, expectSelected, findEntry, findGroupEntry, // findInput, findSelect, findTextarea, // findButtonByClass, // pressButton, // findDivByClass, } from './helpers'; import spiffModdleExtension from '../../app/spiffworkflow/moddle/spiffworkflow.json'; import messages from '../../app/spiffworkflow/messages'; describe('Messages should work', function () { const xml = require('./bpmn/collaboration.bpmn').default; let container; beforeEach(function () { container = TestContainer.get(this); }); beforeEach( bootstrapPropertiesPanel(xml, { container, debounceInput: false, additionalModules: [ messages, BpmnPropertiesPanelModule, BpmnPropertiesProviderModule, ], moddleExtensions: { spiffworkflow: spiffModdleExtension, }, }) ); it('should allow you to see the collaborations section', async function () { // THEN - a select Data Object section should appear in the properties panel const entry = findGroupEntry('correlation_keys', container); expect(entry).to.exist; await expectSelected('my_collaboration'); }); it('should show a Message Properties group when a send task is selected', async function () { // Select the send Task const sendShape = await expectSelected('ActivitySendLetter'); expect(sendShape, "Can't find Send Task").to.exist; // THEN - a select Data Object section should appear in the properties panel const entry = findGroupEntry('messages', container); expect(entry, "Can't find the message group in the properties panel").to .exist; await expectSelected('my_collaboration'); }); it('should show a list of messages in a drop down inside the message group', async function () { // Select the send Task const sendShape = await expectSelected('ActivitySendLetter'); expect(sendShape, "Can't find Send Task").to.exist; // THEN - there are two options to choose from. const entry = findEntry('selectMessage', container); expect(entry, "Can't find the message select list").to.exist; // AND - There should be two entries in it, one for each message. const selector = findSelect(entry); expect(selector).to.exist; expect(selector.length).to.equal(2); await expectSelected('my_collaboration'); }); it('should show the payload inside the message group', async function () { // Select the second Task const sendShape = await expectSelected('ActivitySendLetter'); expect(sendShape, "Can't find Send Task").to.exist; // THEN - there is a payload. const payload = findEntry('messagePayload', container); expect(payload, "Can't find the message payload").to.exist; const textArea = findTextarea( 'bio-properties-panel-messagePayload', payload ); expect(textArea, "Can't find the payload textarea").to.exist; expect(textArea.value, "Can't find payload value").to.exist; expect(textArea.value).to.include("'to': { 'name': my_lover_variable }"); await expectSelected('my_collaboration'); }); it('should show the correlations inside the message group', async function () { // Select the second Task const sendShape = await expectSelected('ActivitySendLetter'); expect(sendShape, "Can't find Send Task").to.exist; // THEN - there are correlations. const correlations = findGroupEntry('correlationProperties', container); expect(correlations, "Can't find the message correlations").to.exist; await expectSelected('my_collaboration'); }); // it('should add a new correlation when clicked', async function () { // // Select the second Task // const sendShape = await expectSelected('ActivitySendLetter'); // expect(sendShape, "Can't find Send Task").to.exist; // // const buttonClass = // 'bio-properties-panel-group-header-button bio-properties-panel-add-entry'; // const button = findButtonByClass(buttonClass, container); // pressButton(button); // // }); // // it('should add a new Correlation Key when clicked', async function () { // const divClass = 'bio-properties-panel-list'; // const divs = findDivByClass(divClass, container); // // const buttonClass = // 'bio-properties-panel-group-header-button bio-properties-panel-add-entry'; // const button = findButtonByClass(buttonClass, container); // pressButton(button); // // // THEN - a select Data Object section should appear in the properties panel // const entry = findGroupEntry('correlation_keys', container); // expect(entry).to.exist; // // const divs2 = findDivByClass(divClass, container); // }); });