You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by po...@apache.org on 2023/09/21 14:31:50 UTC
[incubator-kie-tools-temporary-rnd-do-not-use] 01/02: KOGITO-4830: BPMN Read-only Mode E2E Coverage for standalone editors (#487)
This is an automated email from the ASF dual-hosted git repository.
porcelli pushed a commit to branch 0.9.0-prerelease
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools-temporary-rnd-do-not-use.git
commit c5010241b30af9b0962e45f4f90953edf0d83179
Author: Dominik HanĂ¡k <do...@users.noreply.github.com>
AuthorDate: Tue Apr 27 22:39:59 2021 +0200
KOGITO-4830: BPMN Read-only Mode E2E Coverage for standalone editors (#487)
Modify process-string.bpmn to include better strings for checks.
Add test to verify that BPMN editor correctlly handles read-only mode
for its properties.
---
.../it-tests/cypress/fixtures/process-string.bpmn | 23 +-
.../cypress/integration/bpmn-read-only.spec.ts | 319 +++++++++++++++++++++
.../it-tests/src/pages/page.tsx | 15 +
3 files changed, 349 insertions(+), 8 deletions(-)
diff --git a/packages/kie-editors-standalone/it-tests/cypress/fixtures/process-string.bpmn b/packages/kie-editors-standalone/it-tests/cypress/fixtures/process-string.bpmn
index 5ac9d2a132..1af888b460 100644
--- a/packages/kie-editors-standalone/it-tests/cypress/fixtures/process-string.bpmn
+++ b/packages/kie-editors-standalone/it-tests/cypress/fixtures/process-string.bpmn
@@ -1,7 +1,14 @@
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_kGuj4BujEDmrLJYIynz9hA" exporter="jBPM Process Modeler" exporterVersion="2.0" targetNamespace="http://www.omg. [...]
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_wfZckHQ-EDmoD5SBglSh9A" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www. [...]
<bpmn2:itemDefinition id="_string_inputItem" structureRef="String"/>
- <bpmn2:error id="_74956D6C-C3B3-49FD-80D4-CCA6367DB98A"/>
- <bpmn2:process id="default" drools:packageName="com.example" drools:version="1.0" drools:adHoc="false" name="Process string" isExecutable="true" processType="Public">
+ <bpmn2:error id="_953AB2AE-F7D2-4511-8E3E-1A80C1F76EEE"/>
+ <bpmn2:process id="defaultProcessId" drools:packageName="com.example" drools:version="1.0" drools:adHoc="false" name="Process string" isExecutable="true" processType="Public">
+ <bpmn2:documentation><![CDATA[Documentation]]></bpmn2:documentation>
+ <bpmn2:extensionElements>
+ <drools:global identifier="is_processing" type="Boolean"/>
+ <drools:metaData name="perf_indicator">
+ <drools:metaValue><![CDATA[good_performance]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
<bpmn2:property id="string_input" itemSubjectRef="_string_inputItem" name="string_input"/>
<bpmn2:sequenceFlow id="_228E7366-9427-450F-8B8A-67A52AE699AD" sourceRef="_B52EFB79-8087-4681-AC3B-6E4939AEF31D" targetRef="_30E7BBB3-352E-42DD-A5E4-88BDEF37BAC1">
<bpmn2:extensionElements>
@@ -32,7 +39,7 @@
<bpmn2:sequenceFlow id="_448A379A-CB17-4D92-B2B7-7EEB6D277896" sourceRef="_B542F26C-CEA8-4CC3-94C4-0F38867CFEF8" targetRef="_3B8CF7BA-6AFC-42DF-8E21-262FEB4657D8"/>
<bpmn2:endEvent id="_30E7BBB3-352E-42DD-A5E4-88BDEF37BAC1">
<bpmn2:incoming>_228E7366-9427-450F-8B8A-67A52AE699AD</bpmn2:incoming>
- <bpmn2:errorEventDefinition errorRef="_74956D6C-C3B3-49FD-80D4-CCA6367DB98A"/>
+ <bpmn2:errorEventDefinition errorRef="_953AB2AE-F7D2-4511-8E3E-1A80C1F76EEE"/>
</bpmn2:endEvent>
<bpmn2:endEvent id="_814933F7-55AF-4EEE-B8A1-AA6777A1F555">
<bpmn2:incoming>_D0DD8211-3377-4D40-B4B7-CA89C5292181</bpmn2:incoming>
@@ -65,7 +72,7 @@
</bpmn2:startEvent>
</bpmn2:process>
<bpmndi:BPMNDiagram>
- <bpmndi:BPMNPlane bpmnElement="default">
+ <bpmndi:BPMNPlane bpmnElement="defaultProcessId">
<bpmndi:BPMNShape id="shape__B542F26C-CEA8-4CC3-94C4-0F38867CFEF8" bpmnElement="_B542F26C-CEA8-4CC3-94C4-0F38867CFEF8">
<dc:Bounds height="56" width="56" x="137" y="187"/>
</bpmndi:BPMNShape>
@@ -161,7 +168,7 @@
</bpsim:Scenario>
</bpsim:BPSimData>
</bpmn2:extensionElements>
- <bpmn2:source>_kGuj4BujEDmrLJYIynz9hA</bpmn2:source>
- <bpmn2:target>_kGuj4BujEDmrLJYIynz9hA</bpmn2:target>
+ <bpmn2:source>_wfZckHQ-EDmoD5SBglSh9A</bpmn2:source>
+ <bpmn2:target>_wfZckHQ-EDmoD5SBglSh9A</bpmn2:target>
</bpmn2:relationship>
-</bpmn2:definitions>
+</bpmn2:definitions>
\ No newline at end of file
diff --git a/packages/kie-editors-standalone/it-tests/cypress/integration/bpmn-read-only.spec.ts b/packages/kie-editors-standalone/it-tests/cypress/integration/bpmn-read-only.spec.ts
new file mode 100644
index 0000000000..501265e63d
--- /dev/null
+++ b/packages/kie-editors-standalone/it-tests/cypress/integration/bpmn-read-only.spec.ts
@@ -0,0 +1,319 @@
+/*
+ * Copyright 2021 Red Hat, Inc. and/or its affiliates.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+describe("Bpmn Read Only.", () => {
+ before("Visit page", () => {
+ cy.visit("localhost:9001/bpmn-read-only");
+ cy.loadEditor("bpmn-read-only");
+ });
+
+ describe("Loads empty editor in read only mode", () => {
+ it("Editor palette is not visible", () => {
+ cy.editor("bpmn-read-only")
+ .find("[data-field='palettePanel']")
+ .should("not.be.visible");
+ })
+
+ it("Editor properties bar is visible", () => {
+ cy.editor("bpmn-read-only")
+ .ouiaId("collapsed-docks-bar", "collapsed-docks-bar-E", { timeout: 10000 })
+ .should("be.visible");
+ });
+ });
+
+ describe("Loads non-empty editor in read only mode", () => {
+ it("Loads non-empty editor without palette", () => {
+ cy.uploadFile("process-string.bpmn");
+ cy.viewFile("process-string.bpmn");
+
+ cy.editor("bpmn-read-only")
+ .find("[data-field='palettePanel']")
+ .should("not.be.visible");
+ });
+
+ it("Loads non-empty editor with properties bar visible", () => {
+ cy.editor("bpmn-read-only")
+ .ouiaId("collapsed-docks-bar", "collapsed-docks-bar-E", { timeout: 10000 })
+ .should("be.visible");
+ });
+
+ it("Editor properties bar can be openned", () => {
+ cy.editor("bpmn-read-only")
+ .ouiaId("docks-item", "docks-item-DiagramEditorPropertiesScreen")
+ .find("button")
+ .first()
+ .should("be.visible")
+ .click(); // open Properties
+ cy.editor("bpmn-read-only")
+ .ouiaId("expanded-docks-bar", "expanded-docks-bar-E")
+ .should("be.visible");
+ });
+
+ describe("Editor properties are displayed as read-only", () => {
+ let propertyItems: JQuery<HTMLElement>
+
+ it("Properties have expected length", () => {
+ cy.editor("bpmn-read-only")
+ .ouiaId("expanded-docks-bar", "expanded-docks-bar-E")
+ .within($properties => {
+ cy.wrap($properties)
+ .find("[id='mainContainer']")
+ .should("be.visible")
+ .children(".row")
+ .should("have.length", 17)
+ .then($items => {
+ propertyItems = $items;
+ });
+ });
+ });
+
+
+ it("Process name property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.name']")
+ .should("have.value", "Process string")
+ .should("not.have.class", "editable");
+ });
+
+ it("Process documentation property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("textarea[name*='diagramSet.documentation']")
+ .should("have.value", "Documentation")
+ .should("not.have.class", "editable");
+ });
+
+ it("Process ID property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.id']")
+ .should("not.have.class", "editable")
+ .should("have.value", "defaultProcessId");
+ });
+
+ it("Process package property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.packageProperty']")
+ .should("not.have.class", "editable")
+ .should("have.value", "com.example");
+ });
+
+ it("Process type property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("select[name*='diagramSet.processType']")
+ .should("not.have.class", "editable")
+ .should("have.value", "Public");
+ });
+
+ it("Process version property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.version']")
+ .should("not.have.class", "editable")
+ .should("have.value", "1.0");
+ });
+
+ it("Process ad-hoc property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.adHoc']")
+ .should("be.disabled")
+ .should("not.be.checked");
+ });
+
+ it("Process instance description property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.processInstanceDescription']")
+ .should("not.have.class", "editable")
+ .should("have.value", "");
+ });
+
+ it("Process imports property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[id='importsTextBox']")
+ .should("have.value", "No imports")
+ .should("not.have.class", "editable");
+ });
+
+ it.skip("Process imports buttons is read only", () => {
+ cy.wrap(propertyItems)
+ .find("button[id='importsButton']")
+ .should("be.disabled");
+ });
+
+ it("Process executable property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.executable']")
+ .should("be.checked")
+ .should("be.disabled");
+ });
+
+ it("Process SLA due date property is read only", () => {
+ cy.wrap(propertyItems)
+ .find("input[name*='diagramSet.slaDueDate']")
+ .should("have.value", "")
+ .should("have.attr", "disabled");
+ });
+
+ it("Process variables (Process Data section) section is not disabled", () => {
+ cy.wrap(propertyItems)
+ .find("a")
+ .contains("Process Data")
+ .should("not.be.disabled")
+ .click()
+ .scrollIntoView();
+ });
+
+ it("Process variables add button is read only", () => {
+ cy.wrap(propertyItems)
+ .find("button[data-field='addVarButton']")
+ .should("be.disabled");
+ });
+
+ describe("Process variables are displayed as read only", () => {
+ let processVariables: JQuery<HTMLElement>
+
+ it("Process Variables have expected length", () => {
+ cy.wrap(propertyItems)
+ .contains("Process Variables")
+ .siblings()
+ .first()
+ .should("not.be.disabled")
+ .should("be.visible")
+ .then($processVariablesContainer => {
+ processVariables = $processVariablesContainer;
+ cy.wrap($processVariablesContainer)
+ .find("#variableRow")
+ .siblings()
+ .should("have.length", "0");
+ });
+ });
+
+ it("Process variable name is read only", () => {
+ cy.wrap(processVariables)
+ .find("input[data-field='name']")
+ .should("not.have.class", "editable")
+ .should("have.value", "string_input");
+ });
+
+ it("Process variable data type is read only", () => {
+ cy.wrap(processVariables)
+ .find("select[data-field='dataType']")
+ .should("not.have.class", "editable")
+ .should("have.value", "String");
+ });
+
+ it.skip("Process variable TAG handle is read only", () => {
+ cy.wrap(processVariables)
+ .find("a[data-field='variable-tags-settings']")
+ .should("be.disabled");
+ });
+
+ it("Process variable delete button is read only", () => {
+ cy.wrap(processVariables)
+ .find("button[data-field='deleteButton']")
+ .should("not.have.class", "editable");
+ });
+ });
+
+ it("Process advanced (Advanced section) section is not disabled", () => {
+ cy.wrap(propertyItems)
+ .find("a")
+ .contains("Advanced")
+ .should("not.be.disabled")
+ .click()
+ .scrollIntoView();
+ });
+
+ describe("Process metadata attributes rows are displayed as read only", () => {
+ let metadataAtttributes: JQuery<HTMLElement>
+
+ it("Metadata attributes list have expected size", () => {
+ cy.wrap(propertyItems)
+ .contains("Metadata Attributes")
+ .siblings()
+ .first()
+ .should("not.be.disabled")
+ .should("be.visible")
+ .then($metadataAtributesContainer => {
+ metadataAtttributes = $metadataAtributesContainer;
+ cy.wrap($metadataAtributesContainer)
+ .find("#metaDataRow")
+ .siblings()
+ .should("have.length", "0");
+ });
+ });
+
+ it("Process metadata attribute name is read only", ()=> {
+ cy.wrap(metadataAtttributes)
+ .find("input[data-field='attribute']")
+ .should("not.have.class", "editable")
+ .should("have.value", "perf_indicator");
+ });
+
+ it("Process metadata attribute value is read only", ()=> {
+ cy.wrap(metadataAtttributes)
+ .find("input[data-field='value']")
+ .should("not.have.class", "editable")
+ .should("have.value", "good_performance");
+ });
+
+ it("Process metadata attribute delete button is read only", ()=> {
+ cy.wrap(metadataAtttributes)
+ .find("button[data-field='deleteButton']")
+ .should("be.disabled");
+ });
+ });
+
+ describe("Process global variables rows are displayed as read only", () => {
+ let globalVariables: JQuery<HTMLElement>
+
+ it("Global variables list have expected length", () => {
+ cy.wrap(propertyItems)
+ .contains("Global Variables")
+ .siblings()
+ .first()
+ .scrollIntoView()
+ .should("not.be.disabled")
+ .should("be.visible")
+ .then($globalVariablesContainer => {
+ globalVariables = $globalVariablesContainer;
+ cy.wrap($globalVariablesContainer)
+ .find("#variableRow")
+ .siblings()
+ .should("have.length", "0");
+ });
+ });
+
+ it("Process global variable name is read only", () => {
+ cy.wrap(globalVariables)
+ .find("input[data-field='name']")
+ .should("not.have.class", "editable")
+ .should("have.value", "is_processing");
+ });
+
+ it("Process global variable typeis read only", () => {
+ cy.wrap(globalVariables)
+ .find("select[data-field='dataType']")
+ .should("not.have.class", "editable")
+ .should("have.value", "Boolean");
+ });
+
+ it("Process metadata attribute delete button is read only", () => {
+ cy.wrap(globalVariables)
+ .find("button[data-field='deleteButton']")
+ .should("be.disabled");
+ });
+ });
+ });
+ });
+});
\ No newline at end of file
diff --git a/packages/kie-editors-standalone/it-tests/src/pages/page.tsx b/packages/kie-editors-standalone/it-tests/src/pages/page.tsx
index 132b33298e..8737fd402a 100644
--- a/packages/kie-editors-standalone/it-tests/src/pages/page.tsx
+++ b/packages/kie-editors-standalone/it-tests/src/pages/page.tsx
@@ -35,6 +35,9 @@ export const EditorPage: React.FC<{}> = () => {
<li>
<Link to="/bpmn-editable">BPMN Editable</Link>
</li>
+ <li>
+ <Link to="/bpmn-read-only">BPMN Read Only</Link>
+ </li>
<li>
<Link to="/bpmn-workitem">BPMN Workitem</Link>
</li>
@@ -79,6 +82,18 @@ export const EditorPage: React.FC<{}> = () => {
/>
)}
/>
+ <Route
+ exact={true}
+ path="/bpmn-read-only"
+ render={() => (
+ <BpmnEditorComponent
+ key="bpmn-read-only"
+ id="bpmn-read-only"
+ readOnly={true}
+ initialContent={Promise.resolve("")}
+ />
+ )}
+ />
<Route
exact={true}
path="/bpmn-workitem"
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org