test: cypress- updated treeSelect tests (#27126)
This commit is contained in:
parent
93acae0351
commit
76b5f73fca
|
|
@ -0,0 +1,331 @@
|
|||
import {
|
||||
agHelper,
|
||||
locators,
|
||||
deployMode,
|
||||
entityExplorer,
|
||||
propPane,
|
||||
apiPage,
|
||||
dataSources,
|
||||
draggableWidgets,
|
||||
} from "../../../../../support/Objects/ObjectsCore";
|
||||
|
||||
describe("Tree Select widget Tests", function () {
|
||||
before(() => {
|
||||
entityExplorer.DragDropWidgetNVerify("formwidget", 500, 100);
|
||||
entityExplorer.DragDropWidgetNVerify("singleselecttreewidget", 350, 300);
|
||||
entityExplorer.DragDropWidgetNVerify("buttonwidget", 450, 350);
|
||||
});
|
||||
|
||||
let options = `[
|
||||
{
|
||||
"label": "Blue",
|
||||
"value": "BLUE",
|
||||
"children": [
|
||||
{
|
||||
"label": "Dark Blue",
|
||||
"value": "DARK BLUE"
|
||||
},
|
||||
{
|
||||
"label": "Light Blue",
|
||||
"value": "LIGHT BLUE"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Green",
|
||||
"value": "GREEN"
|
||||
},
|
||||
{
|
||||
"label": "Red",
|
||||
"value": "RED"
|
||||
}
|
||||
]`;
|
||||
|
||||
it("1. Verify required field", function () {
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Widgets");
|
||||
propPane.TogglePropertyState("required", "On");
|
||||
propPane.UpdatePropertyFieldValue("Default selected value", "");
|
||||
agHelper.AssertElementEnabledDisabled(locators._buttonInDeployedMode, 1);
|
||||
// Binding with Button
|
||||
propPane.ToggleJSMode("required", true);
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"Required",
|
||||
"{{Button3.isDisabled?false:true}}",
|
||||
);
|
||||
entityExplorer.SelectEntityByName("Button3", "Widgets");
|
||||
propPane.TogglePropertyState("disabled", "On");
|
||||
agHelper.AssertElementEnabledDisabled(
|
||||
locators._buttonInDeployedMode,
|
||||
1,
|
||||
false,
|
||||
);
|
||||
propPane.TogglePropertyState("disabled", "Off");
|
||||
agHelper.AssertElementEnabledDisabled(
|
||||
locators._buttonInDeployedMode,
|
||||
1,
|
||||
true,
|
||||
);
|
||||
});
|
||||
|
||||
it("2. Verify placeholder", function () {
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Widgets");
|
||||
propPane.UpdatePropertyFieldValue("Options", "");
|
||||
propPane.UpdatePropertyFieldValue("Placeholder", "Select new option");
|
||||
agHelper.AssertText(
|
||||
locators._treeSelectPlaceholder,
|
||||
"text",
|
||||
"Select new option",
|
||||
);
|
||||
// Binding with Text widget
|
||||
entityExplorer.DragDropWidgetNVerify("textwidget", 550, 500);
|
||||
propPane.UpdatePropertyFieldValue("Text", "Select value");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Widgets");
|
||||
propPane.UpdatePropertyFieldValue("Placeholder", "{{Text2.text}}");
|
||||
agHelper.AssertText(
|
||||
locators._treeSelectPlaceholder,
|
||||
"text",
|
||||
"Select value",
|
||||
);
|
||||
});
|
||||
|
||||
it("3. Verify expand all by default", function () {
|
||||
propPane.UpdatePropertyFieldValue("Options", options);
|
||||
propPane.TogglePropertyState("expandallbydefault", "On");
|
||||
agHelper.GetNClick(locators._widgetInDeployed(draggableWidgets.TREESELECT));
|
||||
agHelper.AssertElementExist(locators._dropDownMultiTreeValue("Dark Blue"));
|
||||
});
|
||||
|
||||
it("4. Verify Full color picker and font size", () => {
|
||||
// Verify font color picker opens up
|
||||
propPane.MoveToTab("Style");
|
||||
agHelper.GetNClick(propPane._propertyControlColorPicker("fontcolor"));
|
||||
agHelper.AssertElementVisibility(propPane._colorPickerV2Color);
|
||||
// Verify full color picker
|
||||
agHelper.AssertAttribute(propPane._colorPickerInput, "type", "text", 0);
|
||||
propPane.TogglePropertyState("fontcolor", "On", "");
|
||||
agHelper.AssertAttribute(propPane._colorPickerInput, "type", "color", 0);
|
||||
// Font size
|
||||
propPane.SelectPropertiesDropDown("fontsize", "L");
|
||||
propPane.AssertPropertiesDropDownCurrentValue("fontsize", "L");
|
||||
propPane.ToggleJSMode("fontsize", true);
|
||||
propPane.UpdatePropertyFieldValue("Font size", "1rem");
|
||||
propPane.ToggleJSMode("fontsize", false);
|
||||
propPane.AssertPropertiesDropDownCurrentValue("fontsize", "M");
|
||||
// Verify Emphasis
|
||||
agHelper.GetNClick(propPane._emphasisSelector("BOLD"));
|
||||
agHelper.AssertAttribute(locators._label, "font-style", "BOLD");
|
||||
agHelper.GetNClick(propPane._emphasisSelector("BOLD"));
|
||||
propPane.ToggleJSMode("emphasis", true);
|
||||
propPane.UpdatePropertyFieldValue("Emphasis", "ITALIC");
|
||||
agHelper.AssertAttribute(locators._label, "font-style", "ITALIC");
|
||||
|
||||
// Preview mode
|
||||
agHelper.GetNClick(locators._enterPreviewMode);
|
||||
agHelper.AssertAttribute(locators._label, "font-style", "ITALIC");
|
||||
agHelper.GetNClick(locators._exitPreviewMode);
|
||||
|
||||
// Deploy mode
|
||||
deployMode.DeployApp();
|
||||
agHelper.AssertAttribute(locators._label, "font-style", "ITALIC");
|
||||
deployMode.NavigateBacktoEditor();
|
||||
|
||||
// entityExplorer.SelectEntityByName("Form1");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.MoveToTab("Style");
|
||||
|
||||
// Verify border
|
||||
agHelper.GetNClick(propPane._segmentedControl("0px"));
|
||||
agHelper.AssertCSS(".rc-tree-select", "border-radius", "0px");
|
||||
});
|
||||
|
||||
it("5. Verify Api binding", () => {
|
||||
apiPage.CreateAndFillApi("https://mock-api.appsmith.com/users");
|
||||
apiPage.RunAPI();
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.MoveToTab("Content");
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"Options",
|
||||
`{{Api1.data.users.map((s)=>{return{"label":s.name,"value":s.name}})}}`,
|
||||
);
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.AssertElementExist(locators._treeSelectTitle);
|
||||
});
|
||||
|
||||
it("6. Verify onOptionChange with query", () => {
|
||||
entityExplorer.DragDropWidgetNVerify("checkboxwidget", 300, 600);
|
||||
entityExplorer.DragDropWidgetNVerify("inputwidgetv2", 500, 700);
|
||||
entityExplorer.DragDropWidgetNVerify("iframewidget", 550, 800);
|
||||
// Execute the query
|
||||
let postgresDatasourceName: any;
|
||||
dataSources.StartDataSourceRoutes();
|
||||
agHelper
|
||||
.GetElement(locators._newDataSourceBtn)
|
||||
.last()
|
||||
.click({ force: true });
|
||||
dataSources.NavigateToDSCreateNew();
|
||||
dataSources.CreatePlugIn("PostgreSQL");
|
||||
agHelper.GenerateUUID();
|
||||
cy.get("@guid").then((uid) => {
|
||||
postgresDatasourceName = uid;
|
||||
agHelper.GetNClick(locators._dsName);
|
||||
agHelper.TypeText(locators._dsNameTxt, postgresDatasourceName);
|
||||
dataSources.FillPostgresDSForm();
|
||||
dataSources.SaveDatasource();
|
||||
dataSources.NavigateFromActiveDS(postgresDatasourceName, true);
|
||||
});
|
||||
dataSources.RunQuery();
|
||||
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Widgets");
|
||||
propPane.UpdatePropertyFieldValue("Options", options);
|
||||
propPane.SelectPlatformFunction("onOptionChange", "Execute a query");
|
||||
agHelper.GetNClick(`${locators._dropDownValue("Query1")}`, 0, true);
|
||||
agHelper.GetNClick(locators._callbackAddBtn, 0, true);
|
||||
agHelper.GetNClick(locators._dropDownValue("Show alert"));
|
||||
agHelper.TypeText(
|
||||
propPane._actionSelectorFieldByLabel("Message"),
|
||||
"Success",
|
||||
);
|
||||
agHelper.GetNClick(propPane._actionSelectorPopupClose);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Green"));
|
||||
agHelper.ValidateToastMessage("Success");
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
|
||||
it("7. Verify onOptionChange with Navigate To", () => {
|
||||
// Navigate To
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.ToggleJSMode("onOptionChange", true);
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"onOptionChange",
|
||||
"{{navigateTo('www.yahoo.com', {}, 'SAME_WINDOW');}}",
|
||||
);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Red"));
|
||||
agHelper.AssertURL("yahoo.com");
|
||||
agHelper.BrowserNavigation(-1);
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
|
||||
it("8. Verify onOptionChange with Alert", () => {
|
||||
// Alert
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"onOptionChange",
|
||||
"{{showAlert('Option Changed', '');}}",
|
||||
);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Green"));
|
||||
agHelper.ValidateToastMessage("Option Changed");
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
|
||||
it("9. Verify onOptionChange with download", () => {
|
||||
// Download
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"onOptionChange",
|
||||
`{{download('https://assets.codepen.io/3/kiwi.svg', 'kiwi.svg', 'image/svg+xml').then(() => {
|
||||
showAlert('Download Success', '');
|
||||
});}}`,
|
||||
);
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Red"));
|
||||
agHelper.ValidateToastMessage("Download Success");
|
||||
});
|
||||
|
||||
it("10. Verify onOptionChange with Reset", () => {
|
||||
// Reset Widget
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"onOptionChange",
|
||||
'{{resetWidget("Checkbox1", true);}}',
|
||||
);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(`${locators._widgetInDeployed("checkbox1")}`);
|
||||
agHelper.AssertExistingCheckedState(
|
||||
locators._checkboxInDeployedMode,
|
||||
"false",
|
||||
);
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Green"));
|
||||
agHelper.AssertExistingCheckedState(locators._checkboxInDeployedMode);
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
|
||||
it("11. Verify onOptionChange with Modal", () => {
|
||||
// Modal
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.ToggleJSMode("onOptionChange", false);
|
||||
propPane.SelectPlatformFunction("onOptionChange", "Show modal");
|
||||
agHelper.GetNClick(propPane._actionOpenDropdownSelectModal);
|
||||
agHelper.GetNClick(propPane._createModalButton);
|
||||
agHelper.AssertElementVisibility(locators._modal);
|
||||
agHelper.GetNClick(locators._closeModal, 0, true);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Red"));
|
||||
agHelper.AssertElementVisibility(locators._modal);
|
||||
agHelper.GetNClick(locators._closeModal, 0, true);
|
||||
agHelper.Sleep(3000);
|
||||
agHelper.AssertElementAbsence(locators._modal);
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
|
||||
it("12. Verify onOptionChange with iframe", () => {
|
||||
// Postmessage on iframe
|
||||
entityExplorer.SelectEntityByName("Iframe1", "Widgets");
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"srcDoc",
|
||||
`<div id="target"></div>
|
||||
|
||||
<script>
|
||||
window.addEventListener('message', (event) => {
|
||||
const tgt = document.querySelector("#target")
|
||||
tgt.textContent = event.data
|
||||
});
|
||||
</script>`,
|
||||
);
|
||||
entityExplorer.SelectEntityByName("Form1", "Widgets");
|
||||
entityExplorer.SelectEntityByName("TreeSelect1", "Form1");
|
||||
propPane.ToggleJSMode("onOptionChange", true);
|
||||
propPane.UpdatePropertyFieldValue(
|
||||
"onOptionChange",
|
||||
`{{postWindowMessage('Test', 'Iframe1', "*");}}`,
|
||||
);
|
||||
deployMode.DeployApp();
|
||||
agHelper.GetNClick(
|
||||
`${locators._widgetInDeployed("singleselecttreewidget")}`,
|
||||
);
|
||||
agHelper.GetNClick(locators._dropDownMultiTreeValue("Green"));
|
||||
|
||||
agHelper.GetElement('iframe[id="iframe-Iframe1"]').then(($iframe) => {
|
||||
const iframe = $iframe.contents();
|
||||
|
||||
cy.wrap(iframe).find("#target").should("have.text", "Test");
|
||||
});
|
||||
deployMode.NavigateBacktoEditor();
|
||||
});
|
||||
});
|
||||
|
|
@ -293,4 +293,10 @@ export class CommonLocators {
|
|||
_alignment = (value: string) => `//*[@data-value='${value}']`;
|
||||
_borderRadius = (value: string) => `//*[@data-value='${value}']`;
|
||||
_textInside = ".bp3-ui-text span";
|
||||
_buttonInDeployedMode = ".bp3-button";
|
||||
_treeSelectPlaceholder = ".rc-tree-select-selection-placeholder";
|
||||
_treeSelectTitle = ".rc-tree-select-tree-title";
|
||||
_newDataSourceBtn = ".datasources .t--entity-add-btn";
|
||||
_callbackAddBtn = ".action-callback-add .ads-v2-button";
|
||||
_checkboxInDeployedMode = "//label[contains(@class, 'bp3-checkbox')]//input";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ export class PropertyPane {
|
|||
"')]//input[@class='rc-select-selection-search-input']/parent::span/following-sibling::span | //div[contains(@class, 't--property-control-" +
|
||||
ddName.replace(/ +/g, "").toLowerCase() +
|
||||
"')]//div[@class='selected-item']/div";
|
||||
private _createModalButton = ".t--create-modal-btn";
|
||||
public _createModalButton = ".t--create-modal-btn";
|
||||
_pageName = (option: string) => "//a/div[text()='" + option + "']";
|
||||
private isMac = Cypress.platform === "darwin";
|
||||
private selectAllJSObjectContentShortcut = `${
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user