ToolJet/cypress-tests/cypress/e2e/editor/widget/passwordInputHappyPath.cy.js
Midhun Kumar E 86fad66ce7
Fix for failing specs on release branch (#6438)
* Fix multipage failure

* Fix config

* Fix text spec

* Add versions to the suite

* Fix password and versions spec

* Revert config

* Fix password and listview

* Fix versions with temp fix

* fix all failures.

* add retry

* revert button fix

* Add workspace specs to the suite
2023-05-18 13:41:41 +05:30

390 lines
12 KiB
JavaScript

import { fake } from "Fixtures/fake";
import { commonWidgetText, customValidation } from "Texts/common";
import { commonSelectors, commonWidgetSelector } from "Selectors/common";
import { buttonText } from "Texts/button";
import {
openAccordion,
verifyAndModifyParameter,
openEditorSidebar,
verifyAndModifyToggleFx,
verifyComponentValueFromInspector,
verifyBoxShadowCss,
verifyLayout,
verifyTooltip,
editAndVerifyWidgetName,
addTextWidgetToVerifyValue,
verifyPropertiesGeneralAccordion,
verifyStylesGeneralAccordion,
randomNumber,
fillBoxShadowParams,
selectColourFromColourPicker,
closeAccordions,
} from "Support/utils/commonWidget";
import { passwordInputText } from "Texts/passwordInput";
import { randomString } from "Support/utils/textInput";
describe("Password Input", () => {
beforeEach(() => {
cy.appUILogin();
cy.createApp();
cy.modifyCanvasSize(1200, 780);
cy.dragAndDropWidget("Password Input", 350, 300);
});
it("should verify the properties of the password input widget", () => {
const data = {};
data.appName = `${fake.companyName}-App`;
data.widgetName = fake.widgetName;
data.customText = fake.firstName;
data.tooltipText = fake.randomSentence;
data.minimumLength = randomNumber(1, 4);
data.maximumLength = randomNumber(8, 10);
data.customText = randomString(12);
cy.renameApp(data.appName);
openEditorSidebar(passwordInputText.defaultWidgetName);
closeAccordions(["Events", "Validation", "Properties", "Layout"]);
editAndVerifyWidgetName(data.widgetName);
cy.get(commonWidgetSelector.draggableWidget(data.widgetName))
.invoke("attr", "placeholder")
.should("contain", "password");
openEditorSidebar(data.widgetName);
openAccordion(commonWidgetText.accordionProperties, [
"Events",
"Validation",
"Properties",
"Layout",
]);
verifyAndModifyParameter("Placeholder", data.customText);
cy.forceClickOnCanvas();
cy.get(commonWidgetSelector.draggableWidget(data.widgetName))
.invoke("attr", "placeholder")
.should("contain", data.customText);
cy.clearAndType(
commonWidgetSelector.draggableWidget(data.widgetName),
data.customText
);
cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).should(
"have.value",
data.customText
);
verifyComponentValueFromInspector(data.widgetName, data.customText);
cy.forceClickOnCanvas();
openEditorSidebar(data.widgetName);
openAccordion(commonWidgetText.accordionValidation);
verifyAndModifyParameter(
commonWidgetText.labelRegex,
commonWidgetText.regularExpression
);
cy.clearAndType(
commonWidgetSelector.draggableWidget(data.widgetName),
data.customText
);
cy.forceClickOnCanvas();
cy.get(
commonWidgetSelector.validationFeedbackMessage(data.widgetName)
).verifyVisibleElement("have.text", commonWidgetText.regexValidationError);
cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).clear();
openEditorSidebar(data.widgetName);
openAccordion(commonWidgetText.accordionValidation);
cy.get(
commonWidgetSelector.parameterInputField(commonWidgetText.labelRegex)
).clearCodeMirror();
verifyAndModifyParameter(
commonWidgetText.labelMinLength,
data.minimumLength
);
cy.forceClickOnCanvas();
cy.get(
commonWidgetSelector.validationFeedbackMessage(data.widgetName)
).verifyVisibleElement(
"have.text",
commonWidgetText.minLengthValidationError(data.minimumLength)
);
cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).clear();
cy.get(
commonWidgetSelector.parameterInputField(commonWidgetText.labelMinLength)
).clearCodeMirror();
verifyAndModifyParameter(
commonWidgetText.labelMaxLength,
data.maximumLength
);
cy.forceClickOnCanvas();
cy.clearAndType(
commonWidgetSelector.draggableWidget(data.widgetName),
data.customText
);
cy.get('[data-cy="real-canvas"]').click("topLeft", { force: true });
cy.get(
commonWidgetSelector.validationFeedbackMessage(data.widgetName)
).verifyVisibleElement(
"have.text",
commonWidgetText.maxLengthValidationError(data.maximumLength)
);
openEditorSidebar(data.widgetName);
verifyAndModifyParameter(
commonWidgetText.labelcustomValidadtion,
customValidation(data.widgetName, data.customText)
);
cy.forceClickOnCanvas();
cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).clear();
cy.get('[data-cy="real-canvas"]').click("topLeft", { force: true });
cy.get(
commonWidgetSelector.validationFeedbackMessage(data.widgetName)
).verifyVisibleElement("have.text", data.customText);
openEditorSidebar(data.widgetName);
cy.get(
commonWidgetSelector.accordion(commonWidgetText.accordionProperties)
).click();
cy.get(
commonWidgetSelector.accordion(commonWidgetText.accordionValidation)
).click();
verifyPropertiesGeneralAccordion(data.widgetName, data.tooltipText);
openEditorSidebar(data.widgetName);
cy.get(
commonWidgetSelector.accordion(commonWidgetText.accordionProperties)
).click();
cy.get(
commonWidgetSelector.accordion(commonWidgetText.accordionValidation)
).click();
// verifyLayout(data.widgetName);
// cy.get(commonWidgetSelector.changeLayoutButton).click();
// cy.get(
// commonWidgetSelector.parameterTogglebutton(
// commonWidgetText.parameterShowOnDesktop
// )
// ).click();
cy.get(commonWidgetSelector.widgetDocumentationLink).should(
"have.text",
"PasswordInput documentation"
);
cy.get(commonSelectors.editorPageLogo).click();
cy.deleteApp(data.appName);
});
it("should verify the styles of the password input widget", () => {
const data = {};
data.appName = `${fake.companyName}-App`;
data.colourHex = fake.randomRgbaHex;
data.boxShadowColor = fake.randomRgba;
data.boxShadowParam = fake.boxShadowParam;
cy.renameApp(data.appName);
openEditorSidebar(passwordInputText.defaultWidgetName);
cy.get(commonWidgetSelector.buttonStylesEditorSideBar).click();
verifyAndModifyToggleFx(
commonWidgetText.parameterVisibility,
commonWidgetText.codeMirrorLabelTrue
);
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
).should("not.be.visible");
cy.get(
commonWidgetSelector.parameterTogglebutton(
commonWidgetText.parameterVisibility
)
).click();
verifyAndModifyToggleFx(
commonWidgetText.parameterDisable,
commonWidgetText.codeMirrorLabelFalse
);
cy.waitForAutoSave();
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
).should("have.attr", "disabled");
cy.get(
commonWidgetSelector.parameterTogglebutton(
commonWidgetText.parameterDisable
)
).click();
verifyAndModifyParameter(
commonWidgetText.parameterBorderRadius,
commonWidgetText.borderRadiusInput
);
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click();
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
).should("have.css", "border-radius", "20px");
verifyStylesGeneralAccordion(
passwordInputText.defaultWidgetName,
data.boxShadowParam,
data.colourHex,
data.boxShadowColor,
1
);
cy.get(commonSelectors.editorPageLogo).click();
cy.deleteApp(data.appName);
});
it("should verify the app preview", () => {
const data = {};
data.appName = `${fake.companyName}-App`;
data.widgetName = fake.widgetName;
data.tooltipText = fake.randomSentence;
data.colourHex = fake.randomRgbaHex;
data.boxShadowColor = fake.randomRgba;
data.boxShadowParam = fake.boxShadowParam;
data.minimumLength = randomNumber(1, 4);
data.maximumLength = randomNumber(8, 10);
data.customText = randomString(12);
data.maxLengthText = randomString(data.maximumLength);
cy.renameApp(data.appName);
openEditorSidebar(passwordInputText.defaultWidgetName);
verifyAndModifyParameter("Placeholder", data.customText);
openAccordion(commonWidgetText.accordionValidation);
verifyAndModifyParameter(
commonWidgetText.labelRegex,
commonWidgetText.regularExpression
);
verifyAndModifyParameter(
commonWidgetText.labelMinLength,
data.minimumLength
);
verifyAndModifyParameter(
commonWidgetText.labelMaxLength,
data.maximumLength
);
verifyAndModifyParameter(
commonWidgetText.labelcustomValidadtion,
customValidation(passwordInputText.defaultWidgetName, data.customText)
);
verifyPropertiesGeneralAccordion(
passwordInputText.defaultWidgetName,
data.tooltipText
);
openEditorSidebar(passwordInputText.defaultWidgetName);
cy.get(commonWidgetSelector.buttonStylesEditorSideBar).click();
verifyAndModifyParameter(
commonWidgetText.parameterBorderRadius,
commonWidgetText.borderRadiusInput
);
cy.get(
commonWidgetSelector.parameterTogglebutton(
commonWidgetText.parameterVisibility
)
)
.click()
.click();
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click();
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
).should("have.css", "border-radius", "20px");
cy.waitForAutoSave();
cy.reload();
openEditorSidebar(passwordInputText.defaultWidgetName);
cy.get(commonWidgetSelector.buttonStylesEditorSideBar).click();
openAccordion(commonWidgetText.accordionGenaral, []);
cy.get(commonWidgetSelector.boxShadowColorPicker).click();
fillBoxShadowParams(
commonWidgetSelector.boxShadowDefaultParam,
data.boxShadowParam
);
selectColourFromColourPicker(
commonWidgetText.boxShadowColor,
data.boxShadowColor,
1
);
addTextWidgetToVerifyValue("components.passwordinput1.value");
cy.waitForAutoSave();
cy.openInCurrentTab(commonWidgetSelector.previewButton);
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
)
.invoke("attr", "placeholder")
.should("contain", data.customText);
cy.get('[data-cy="real-canvas"]').click("topLeft", { force: true });
cy.get(
commonWidgetSelector.validationFeedbackMessage(
passwordInputText.defaultWidgetName
)
).verifyVisibleElement(
"have.text",
commonWidgetText.minLengthValidationError(data.minimumLength)
);
cy.clearAndType(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName),
"t"
);
cy.get(
commonWidgetSelector.draggableWidget(commonWidgetText.text1)
).verifyVisibleElement("have.text", "t");
cy.forceClickOnCanvas();
cy.get('[data-cy="real-canvas"]').click("topLeft", { force: true });
cy.get(
commonWidgetSelector.validationFeedbackMessage(
passwordInputText.defaultWidgetName
)
).verifyVisibleElement("have.text", commonWidgetText.regexValidationError);
cy.clearAndType(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName),
data.customText.toUpperCase()
);
cy.get('[data-cy="real-canvas"]').click("topLeft", { force: true });
cy.get(
commonWidgetSelector.validationFeedbackMessage(
passwordInputText.defaultWidgetName
)
).verifyVisibleElement(
"have.text",
commonWidgetText.maxLengthValidationError(data.maximumLength)
);
cy.clearAndType(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName),
data.maxLengthText.toUpperCase()
);
cy.get(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName)
).should("have.css", "border-radius", "20px");
verifyBoxShadowCss(
passwordInputText.defaultWidgetName,
data.boxShadowColor,
data.boxShadowParam
);
verifyTooltip(
commonWidgetSelector.draggableWidget(passwordInputText.defaultWidgetName),
data.tooltipText
);
cy.get(commonSelectors.viewerPageLogo).click();
cy.deleteApp(data.appName);
});
});