200 lines
7.4 KiB
JavaScript
200 lines
7.4 KiB
JavaScript
import { slowCypressDown } from 'cypress-slow-down';
|
|
import { modifyProcessIdentifierForPathParam } from '../../src/helpers';
|
|
import { miscDisplayName } from '../support/helpers';
|
|
|
|
// slowCypressDown(500);
|
|
|
|
describe('process-models', () => {
|
|
beforeEach(() => {
|
|
cy.login();
|
|
});
|
|
afterEach(() => {
|
|
cy.logout();
|
|
});
|
|
|
|
const groupDisplayName = 'Acceptance Tests Group One';
|
|
const deleteProcessModelButtonId = 'delete-process-model-button';
|
|
const saveChangesButtonText = 'Save Changes';
|
|
const fileNameInputSelector = 'input[name=file_name]';
|
|
|
|
it('can perform crud operations', () => {
|
|
const uuid = () => Cypress._.random(0, 1e6);
|
|
const id = uuid();
|
|
const groupId = 'misc/acceptance-tests-group-one';
|
|
const modelDisplayName = `Test Model 2 ${id}`;
|
|
const modelId = `test-model-2-${id}`;
|
|
const newModelDisplayName = `${modelDisplayName} edited`;
|
|
cy.contains(miscDisplayName).click();
|
|
cy.contains(groupDisplayName).click();
|
|
cy.createModel(groupId, modelId, modelDisplayName);
|
|
cy.url().should(
|
|
'include',
|
|
`process-models/${modifyProcessIdentifierForPathParam(
|
|
groupId
|
|
)}:${modelId}`
|
|
);
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
|
|
cy.getBySel('edit-process-model-button').click();
|
|
cy.get('input[name=display_name]').clear().type(newModelDisplayName);
|
|
cy.contains('Submit').click();
|
|
cy.contains(`Process Model: ${newModelDisplayName}`);
|
|
|
|
cy.deleteProcessModelAndConfirm(deleteProcessModelButtonId, groupId);
|
|
|
|
cy.contains(modelId).should('not.exist');
|
|
cy.contains(modelDisplayName).should('not.exist');
|
|
});
|
|
|
|
it('can create new bpmn and dmn and json files', () => {
|
|
const uuid = () => Cypress._.random(0, 1e6);
|
|
const id = uuid();
|
|
const directParentGroupId = 'acceptance-tests-group-one';
|
|
const directParentGroupName = 'Acceptance Tests Group One';
|
|
const groupId = `misc/${directParentGroupId}`;
|
|
const modelDisplayName = `Test Model 2 ${id}`;
|
|
const modelId = `test-model-2-${id}`;
|
|
|
|
const bpmnFileName = `bpmn_test_file_${id}`;
|
|
const dmnFileName = `dmn_test_file_${id}`;
|
|
const jsonFileName = `json_test_file_${id}`;
|
|
const decision_acceptance_test_id = `decision_acceptance_test_${id}`;
|
|
|
|
cy.contains(miscDisplayName).click();
|
|
cy.contains(groupDisplayName).click();
|
|
cy.createModel(groupId, modelId, modelDisplayName);
|
|
cy.contains(groupDisplayName).click();
|
|
cy.contains(modelDisplayName).click();
|
|
cy.url().should(
|
|
'include',
|
|
`process-models/${modifyProcessIdentifierForPathParam(
|
|
groupId
|
|
)}:${modelId}`
|
|
);
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
cy.contains(`${bpmnFileName}.bpmn`).should('not.exist');
|
|
cy.contains(`${dmnFileName}.dmn`).should('not.exist');
|
|
cy.contains(`${jsonFileName}.json`).should('not.exist');
|
|
|
|
// add new bpmn file
|
|
cy.contains('New BPMN File').click();
|
|
cy.contains(/^Process Model File$/);
|
|
cy.get('g[data-element-id=StartEvent_1]').click().should('exist');
|
|
cy.contains('General').click();
|
|
cy.get('#bio-properties-panel-name').clear().type('Start Event Name');
|
|
cy.wait(500);
|
|
cy.contains('Save').click();
|
|
cy.contains('Start Event Name');
|
|
cy.get(fileNameInputSelector).type(bpmnFileName);
|
|
cy.contains(saveChangesButtonText).click();
|
|
cy.contains(`Process Model File: ${bpmnFileName}`);
|
|
cy.contains(modelDisplayName).click();
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
// cy.getBySel('files-accordion').click();
|
|
cy.contains(`${bpmnFileName}.bpmn`).should('exist');
|
|
|
|
// add new dmn file
|
|
cy.contains('New DMN File').click();
|
|
cy.contains(/^Process Model File$/);
|
|
cy.get('g[data-element-id=decision_1]').click().should('exist');
|
|
cy.contains('General').click();
|
|
cy.get('#bio-properties-panel-id')
|
|
.clear()
|
|
.type(decision_acceptance_test_id);
|
|
cy.contains('General').click();
|
|
cy.contains('Save').click();
|
|
cy.get(fileNameInputSelector).type(dmnFileName);
|
|
cy.contains(saveChangesButtonText).click();
|
|
cy.contains(`Process Model File: ${dmnFileName}`);
|
|
cy.contains(modelDisplayName).click();
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
// cy.getBySel('files-accordion').click();
|
|
cy.contains(`${dmnFileName}.dmn`).should('exist');
|
|
|
|
// add new json file
|
|
cy.contains('New JSON File').click();
|
|
cy.contains(/^Process Model File$/);
|
|
// Some reason, cypress evals json strings so we have to escape it it with '{{}'
|
|
cy.get('.view-line').type('{{} "test_key": "test_value" }');
|
|
cy.getBySel('file-save-button').click();
|
|
cy.get(fileNameInputSelector).type(jsonFileName);
|
|
cy.contains(saveChangesButtonText).click();
|
|
cy.contains(`Process Model File: ${jsonFileName}`);
|
|
// wait for json to load before clicking away to avoid network errors
|
|
cy.wait(500);
|
|
cy.contains(modelDisplayName).click();
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
// cy.getBySel('files-accordion').click();
|
|
cy.contains(`${jsonFileName}.json`).should('exist');
|
|
|
|
cy.deleteProcessModelAndConfirm(deleteProcessModelButtonId, groupId);
|
|
cy.contains(modelId).should('not.exist');
|
|
cy.contains(modelDisplayName).should('not.exist');
|
|
|
|
// we go back to the parent process group after deleting the model
|
|
cy.get('.tile-process-group-content-container').should('exist');
|
|
});
|
|
|
|
it.only('can upload and run a bpmn file', () => {
|
|
const uuid = () => Cypress._.random(0, 1e6);
|
|
const id = uuid();
|
|
const directParentGroupId = 'acceptance-tests-group-one';
|
|
const groupId = `misc/${directParentGroupId}`;
|
|
const modelDisplayName = `Test Model 2 ${id}`;
|
|
const modelId = `test-model-2-${id}`;
|
|
cy.contains('Add a process group');
|
|
cy.contains(miscDisplayName).click();
|
|
cy.contains(groupDisplayName).click();
|
|
cy.createModel(groupId, modelId, modelDisplayName);
|
|
|
|
cy.contains(`${groupDisplayName}`).click();
|
|
cy.contains('Add a process model');
|
|
cy.contains(modelDisplayName).click();
|
|
cy.url().should(
|
|
'include',
|
|
`process-models/${modifyProcessIdentifierForPathParam(
|
|
groupId
|
|
)}:${modelId}`
|
|
);
|
|
cy.contains(`Process Model: ${modelDisplayName}`);
|
|
|
|
cy.getBySel('upload-file-button').click();
|
|
cy.contains('Add file').selectFile(
|
|
'cypress/fixtures/test_bpmn_file_upload.bpmn'
|
|
);
|
|
cy.getBySel('modal-upload-file-dialog')
|
|
.find('.cds--btn--primary')
|
|
.contains('Upload')
|
|
.click();
|
|
cy.runPrimaryBpmnFile();
|
|
|
|
cy.getBySel('process-instance-show-link-id').click();
|
|
cy.getBySel('process-instance-delete').click();
|
|
cy.contains('Are you sure');
|
|
cy.getBySel('process-instance-delete-modal-confirmation-dialog')
|
|
.find('.cds--btn--danger')
|
|
.click();
|
|
|
|
// in breadcrumb
|
|
cy.contains(modelDisplayName).click();
|
|
|
|
cy.getBySel(deleteProcessModelButtonId).click();
|
|
cy.contains('Are you sure');
|
|
cy.getBySel('delete-process-model-button-modal-confirmation-dialog')
|
|
.find('.cds--btn--danger')
|
|
.click();
|
|
cy.url().should(
|
|
'include',
|
|
`process-groups/${modifyProcessIdentifierForPathParam(groupId)}`
|
|
);
|
|
cy.contains(modelId).should('not.exist');
|
|
cy.contains(modelDisplayName).should('not.exist');
|
|
});
|
|
|
|
it('can allow searching for model', () => {
|
|
cy.getBySel('process-model-selection').click().type('model-3');
|
|
cy.contains('acceptance-tests-group-one/acceptance-tests-model-3').click();
|
|
cy.contains('Acceptance Tests Model 3');
|
|
});
|
|
});
|