spiffworkflow-frontend/cypress/e2e/process_instances.cy.js

90 lines
3.2 KiB
JavaScript

describe('process-instances', () => {
beforeEach(() => {
cy.visit('/');
});
it('can create a new instance and can modify', () => {
const originalDmnOutputForKevin = "Very wonderful";
const newDmnOutputForKevin = "The new wonderful";
const dmnOutputForDan = "pretty wonderful";
const originalPythonScript = 'person = "Kevin"';
const newPythonScript = 'person = "Dan"';
const dmnFile = "awesome_decision.dmn";
const bpmnFile = "process_model_one.bpmn";
cy.contains('acceptance-tests-group-one').click();
cy.contains('acceptance-tests-model-1').click();
cy.contains(originalDmnOutputForKevin).should('not.exist');;
cy.contains('Run Primary').click();
cy.contains(originalDmnOutputForKevin);
// Change dmn
cy.contains(dmnFile).click();
cy.contains(`Process Model File: ${dmnFile}`);
updateDmnText(originalDmnOutputForKevin, newDmnOutputForKevin);
cy.contains('acceptance-tests-model-1').click();
cy.contains('Run Primary').click();
cy.contains(newDmnOutputForKevin);
cy.contains(dmnFile).click();
cy.contains(`Process Model File: ${dmnFile}`);
updateDmnText(newDmnOutputForKevin, originalDmnOutputForKevin);
cy.contains('acceptance-tests-model-1').click();
cy.contains('Run Primary').click();
cy.contains(originalDmnOutputForKevin);
// Change bpmn
cy.contains(bpmnFile).click();
cy.contains(`Process Model File: ${bpmnFile}`);
updateBpmnPythonScript(newPythonScript, bpmnFile);
cy.contains('acceptance-tests-model-1').click();
cy.contains('Run Primary').click();
cy.contains(dmnOutputForDan);
cy.contains(bpmnFile).click();
cy.contains(`Process Model File: ${bpmnFile}`);
updateBpmnPythonScript(originalPythonScript, bpmnFile);
cy.contains('acceptance-tests-model-1').click();
cy.contains('Run Primary').click();
cy.contains(originalDmnOutputForKevin);
});
// it('can paginate items', () => {
// cy.contains('acceptance-tests-group-one').click();
// cy.get("#pagination-page-dropdown")
// .type("typing_to_open_dropdown_box....FIXME")
// .find('.dropdown-item')
// .contains(/^2$/)
// .click();
//
// cy.contains(/^1-2 of \d+$/);
// cy.getBySel("pagination-next-button").click();
// cy.contains(/^3-4 of \d+$/);
// cy.getBySel("pagination-previous-button").click();
// cy.contains(/^1-2 of \d+$/);
// })
})
function updateDmnText(oldText, newText, elementId="wonderful_process", dmnFile="awesome_decision.dmn") {
// this will break if there are more elements added to the drd
cy.get(`g[data-element-id=${elementId}]`).click().should('exist');
cy.get('.dmn-icon-decision-table').click();
cy.contains(oldText).clear().type(`"${newText}"`);
// we have to click on something in order to set the new dmn xml
cy.contains(`Process Model File: ${dmnFile}`).click();
cy.contains('Save').click();
}
function updateBpmnPythonScript(pythonScript, bpmnFile, elementId="process_script") {
cy.get(`g[data-element-id=${elementId}]`).click().should('exist');
cy.contains('SpiffWorkflow Properties').click();
cy.get('#bio-properties-panel-pythonScript').clear().type(pythonScript);
cy.contains(`Process Model File: ${bpmnFile}`).click();
cy.contains('Save').click();
}