2022-09-14 10:49:56 +00:00
|
|
|
import moment from "moment";
|
2022-07-20 07:11:50 +00:00
|
|
|
import { datePickerSelector } from "Selectors/datePicker";
|
|
|
|
|
import { datePickerText } from "Texts/datePicker";
|
|
|
|
|
import { commonText, commonWidgetText } from "Texts/common";
|
|
|
|
|
import { commonSelectors, commonWidgetSelector } from "Selectors/common";
|
|
|
|
|
import { fake } from "Fixtures/fake";
|
|
|
|
|
import { randomDateOrTime } from "Support/utils/common";
|
2022-09-14 10:49:56 +00:00
|
|
|
import { multiselectSelector } from "Selectors/multiselect";
|
2022-07-20 07:11:50 +00:00
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
selectAndVerifyDate,
|
|
|
|
|
selectAndVerifyTime,
|
|
|
|
|
verifyDate,
|
|
|
|
|
} from "Support/utils/datePickerWidget";
|
|
|
|
|
import {
|
|
|
|
|
openAccordion,
|
|
|
|
|
verifyAndModifyParameter,
|
|
|
|
|
openEditorSidebar,
|
|
|
|
|
verifyAndModifyToggleFx,
|
|
|
|
|
addDefaultEventHandler,
|
|
|
|
|
addAndVerifyTooltip,
|
|
|
|
|
editAndVerifyWidgetName,
|
|
|
|
|
verifyComponentValueFromInspector,
|
2022-09-14 10:49:56 +00:00
|
|
|
fillBoxShadowParams,
|
|
|
|
|
selectColourFromColourPicker,
|
|
|
|
|
addTextWidgetToVerifyValue,
|
|
|
|
|
verifyBoxShadowCss,
|
|
|
|
|
verifyTooltip,
|
|
|
|
|
verifyWidgetText,
|
2022-10-04 07:36:59 +00:00
|
|
|
closeAccordions,
|
2022-07-20 07:11:50 +00:00
|
|
|
} from "Support/utils/commonWidget";
|
|
|
|
|
|
|
|
|
|
describe("Date Picker widget", () => {
|
|
|
|
|
beforeEach(() => {
|
2023-09-04 04:05:12 +00:00
|
|
|
cy.apiLogin();
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.apiCreateApp(`${fake.companyName}-datepicker-App`);
|
2023-09-04 04:05:12 +00:00
|
|
|
cy.openApp();
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.dragAndDropWidget("Date Picker");
|
|
|
|
|
});
|
2023-09-04 04:05:12 +00:00
|
|
|
afterEach(() => {
|
|
|
|
|
cy.apiDeleteApp();
|
|
|
|
|
});
|
2022-07-20 07:11:50 +00:00
|
|
|
it("should verify the properties of the date picker widget", () => {
|
|
|
|
|
const data = {};
|
|
|
|
|
data.alertMessage = fake.randomSentence;
|
|
|
|
|
data.widgetName = fake.widgetName;
|
|
|
|
|
data.date = randomDateOrTime();
|
|
|
|
|
data.customMessage = fake.randomSentence;
|
|
|
|
|
data.randomTime = randomDateOrTime("hh:mm");
|
|
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(datePickerText.datepicker1);
|
|
|
|
|
editAndVerifyWidgetName(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2022-10-04 07:36:59 +00:00
|
|
|
openAccordion(commonWidgetText.accordionProperties, [
|
|
|
|
|
"Events",
|
|
|
|
|
"Validation",
|
|
|
|
|
"Properties",
|
|
|
|
|
"General",
|
|
|
|
|
]);
|
2022-07-20 07:11:50 +00:00
|
|
|
verifyAndModifyParameter(datePickerText.labelDefaultValue, data.date);
|
|
|
|
|
verifyComponentValueFromInspector(data.widgetName, data.date);
|
|
|
|
|
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
verifyDate(data.widgetName, data.date);
|
2022-07-20 07:11:50 +00:00
|
|
|
data.date = randomDateOrTime();
|
2022-09-14 10:49:56 +00:00
|
|
|
selectAndVerifyDate(data.widgetName, data.date);
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
verifyAndModifyParameter(datePickerText.labelformat, "DD/MM/YY");
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
verifyDate(data.widgetName, data.date, "DD/MM/YY");
|
2023-01-17 09:07:08 +00:00
|
|
|
verifyComponentValueFromInspector(data.widgetName, data.date);
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(commonSelectors.canvas).click({ force: true });
|
|
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-11-11 05:30:28 +00:00
|
|
|
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
// verifyDate(data.widgetName, "");
|
|
|
|
|
openEditorSidebar(data.widgetName);
|
2022-11-11 05:30:28 +00:00
|
|
|
verifyAndModifyToggleFx(
|
|
|
|
|
datePickerText.labelEnableDateSection,
|
|
|
|
|
commonWidgetText.codeMirrorLabelTrue,
|
|
|
|
|
true
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
verifyAndModifyToggleFx(
|
2022-07-20 07:11:50 +00:00
|
|
|
datePickerText.labelEnableTimeSection,
|
2022-11-11 05:30:28 +00:00
|
|
|
commonWidgetText.codeMirrorLabelFalse,
|
|
|
|
|
true
|
2022-07-20 07:11:50 +00:00
|
|
|
);
|
2022-11-11 05:30:28 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
|
|
|
|
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
verifyDate(data.widgetName, datePickerText.defaultTime, "hh:mm A");
|
|
|
|
|
selectAndVerifyTime(data.widgetName, data.randomTime);
|
2022-11-11 05:30:28 +00:00
|
|
|
verifyAndModifyToggleFx(
|
|
|
|
|
datePickerText.labelEnableTimeSection,
|
|
|
|
|
commonWidgetText.codeMirrorLabelTrue
|
|
|
|
|
);
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
verifyAndModifyParameter(datePickerText.labelDisabledDates, [
|
|
|
|
|
"{{",
|
|
|
|
|
"[05-01]}}",
|
|
|
|
|
]); //WIP
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2022-11-11 05:30:28 +00:00
|
|
|
openAccordion(commonWidgetText.accordionProperties, [
|
|
|
|
|
"Events",
|
|
|
|
|
"Validation",
|
|
|
|
|
"Properties",
|
|
|
|
|
"General",
|
|
|
|
|
]);
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(
|
2022-11-11 05:30:28 +00:00
|
|
|
commonWidgetSelector.parameterTogglebutton(
|
2022-07-20 07:11:50 +00:00
|
|
|
datePickerText.labelEnableDateSection
|
|
|
|
|
)
|
2022-11-11 05:30:28 +00:00
|
|
|
).click();
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2022-11-11 05:30:28 +00:00
|
|
|
openAccordion(commonWidgetText.accordionEvents);
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(commonWidgetSelector.noEventHandlerMessage).should(
|
|
|
|
|
"have.text",
|
|
|
|
|
datePickerText.noEventMessage
|
|
|
|
|
);
|
|
|
|
|
addDefaultEventHandler(data.alertMessage);
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-07-20 07:11:50 +00:00
|
|
|
data.date = randomDateOrTime();
|
2022-09-14 10:49:56 +00:00
|
|
|
selectAndVerifyDate(data.widgetName, data.date, "DD/MM/YY");
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.verifyToastMessage(commonSelectors.toastMessage, data.alertMessage);
|
|
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
openAccordion(commonWidgetText.accordionGenaral);
|
|
|
|
|
addAndVerifyTooltip(
|
2022-09-14 10:49:56 +00:00
|
|
|
commonWidgetSelector.draggableWidget(data.widgetName),
|
2022-07-20 07:11:50 +00:00
|
|
|
fake.randomSentence
|
|
|
|
|
);
|
|
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
openAccordion(commonWidgetText.accordionValidation);
|
|
|
|
|
verifyAndModifyParameter(
|
|
|
|
|
commonWidgetText.parameterCustomValidation,
|
|
|
|
|
datePickerText.customValidation(data.widgetName, data.customMessage)
|
|
|
|
|
);
|
|
|
|
|
data.date = randomDateOrTime();
|
2022-09-14 10:49:56 +00:00
|
|
|
selectAndVerifyDate(data.widgetName, data.date, "DD/MM/YY");
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(datePickerSelector.validationFeedbackMessage).should(
|
|
|
|
|
"have.text",
|
|
|
|
|
data.customMessage
|
|
|
|
|
);
|
|
|
|
|
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(data.widgetName);
|
2022-07-20 07:11:50 +00:00
|
|
|
openAccordion(commonWidgetText.accordionLayout);
|
|
|
|
|
verifyAndModifyToggleFx(
|
|
|
|
|
commonWidgetText.parameterShowOnDesktop,
|
|
|
|
|
commonWidgetText.codeMirrorLabelTrue
|
|
|
|
|
);
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).should(
|
|
|
|
|
"not.exist"
|
|
|
|
|
);
|
2022-07-20 07:11:50 +00:00
|
|
|
|
2023-01-17 09:07:08 +00:00
|
|
|
// verifyAndModifyToggleFx(
|
|
|
|
|
// commonWidgetText.parameterShowOnMobile,
|
|
|
|
|
// commonWidgetText.codeMirrorLabelFalse
|
|
|
|
|
// );
|
|
|
|
|
// cy.get(commonWidgetSelector.changeLayoutButton).click();
|
|
|
|
|
// cy.get(commonWidgetSelector.draggableWidget(data.widgetName)).should(
|
|
|
|
|
// "exist"
|
|
|
|
|
// );
|
2022-07-20 07:11:50 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should verify the styles of the date picker widget", () => {
|
2022-09-14 10:49:56 +00:00
|
|
|
openEditorSidebar(datePickerText.datepicker1);
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonStylesEditorSideBar).click();
|
|
|
|
|
cy.get(commonWidgetSelector.widgetDocumentationLink).should(
|
|
|
|
|
"have.text",
|
|
|
|
|
commonWidgetText.datepickerDocumentationLink
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
verifyAndModifyToggleFx(
|
|
|
|
|
commonWidgetText.parameterVisibility,
|
|
|
|
|
commonWidgetText.codeMirrorLabelTrue
|
|
|
|
|
);
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(
|
|
|
|
|
commonWidgetSelector.draggableWidget(datePickerText.datepicker1)
|
|
|
|
|
).should("not.be.visible");
|
2022-07-20 07:11:50 +00:00
|
|
|
cy.get(commonWidgetSelector.parameterTogglebutton("Visibility")).click();
|
|
|
|
|
|
|
|
|
|
verifyAndModifyToggleFx(
|
|
|
|
|
commonWidgetText.parameterDisable,
|
|
|
|
|
commonWidgetText.codeMirrorLabelFalse
|
|
|
|
|
);
|
|
|
|
|
cy.get(commonSelectors.autoSave, { timeout: 9000 }).should(
|
|
|
|
|
"have.text",
|
|
|
|
|
commonText.autoSave
|
|
|
|
|
);
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(commonWidgetSelector.draggableWidget(datePickerText.datepicker1))
|
2022-07-20 07:11:50 +00:00
|
|
|
.find("input")
|
|
|
|
|
.should("have.css", "pointer-events", "none");
|
|
|
|
|
|
|
|
|
|
verifyAndModifyParameter(
|
|
|
|
|
commonWidgetText.parameterBorderRadius,
|
|
|
|
|
commonWidgetText.borderRadiusInput
|
|
|
|
|
);
|
2024-02-20 15:58:38 +00:00
|
|
|
cy.get(commonWidgetSelector.buttonCloseEditorSideBar).click({
|
|
|
|
|
force: true,
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(commonWidgetSelector.draggableWidget(datePickerText.datepicker1))
|
2022-07-20 07:11:50 +00:00
|
|
|
.find("input")
|
|
|
|
|
.should("have.css", "border-radius", "20px");
|
|
|
|
|
});
|
2022-09-14 10:49:56 +00:00
|
|
|
|
|
|
|
|
it("should verify widget in preview", () => {
|
|
|
|
|
const data = {};
|
|
|
|
|
data.alertMessage = fake.randomSentence;
|
|
|
|
|
data.widgetName = fake.widgetName;
|
|
|
|
|
data.date = randomDateOrTime();
|
|
|
|
|
data.customMessage = fake.randomSentence;
|
|
|
|
|
data.tooltipText = fake.randomSentence;
|
|
|
|
|
data.randomTime = randomDateOrTime("hh:mm");
|
|
|
|
|
data.colour = fake.randomRgba;
|
|
|
|
|
data.boxShadowParam = fake.boxShadowParam;
|
|
|
|
|
|
|
|
|
|
openEditorSidebar(datePickerText.datepicker1);
|
|
|
|
|
editAndVerifyWidgetName(data.widgetName);
|
|
|
|
|
|
2022-10-04 07:36:59 +00:00
|
|
|
openAccordion(commonWidgetText.accordionProperties, [
|
|
|
|
|
"Events",
|
|
|
|
|
"Validation",
|
|
|
|
|
"Properties",
|
|
|
|
|
"General",
|
|
|
|
|
]);
|
2022-09-14 10:49:56 +00:00
|
|
|
verifyAndModifyParameter(datePickerText.labelDefaultValue, data.date);
|
|
|
|
|
verifyAndModifyParameter(datePickerText.labelformat, "DD/MM/YY");
|
|
|
|
|
|
2022-11-11 05:30:28 +00:00
|
|
|
cy.get(
|
|
|
|
|
`${commonWidgetSelector.parameterFxButton(
|
|
|
|
|
datePickerText.labelEnableDateSection
|
2023-09-12 07:34:44 +00:00
|
|
|
)}:eq(0)`
|
2022-11-11 05:30:28 +00:00
|
|
|
).click();
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(
|
|
|
|
|
commonWidgetSelector.parameterInputField(
|
|
|
|
|
datePickerText.labelEnableDateSection
|
|
|
|
|
)
|
|
|
|
|
).clearAndTypeOnCodeMirror([
|
|
|
|
|
`{{`,
|
|
|
|
|
`!components.${commonWidgetText.toggleswitch1}.value}}`,
|
|
|
|
|
]);
|
2022-11-11 05:30:28 +00:00
|
|
|
|
|
|
|
|
cy.get(
|
|
|
|
|
`${commonWidgetSelector.parameterFxButton(
|
|
|
|
|
datePickerText.labelEnableTimeSection
|
2023-09-12 07:34:44 +00:00
|
|
|
)}:eq(0)`
|
2022-11-11 05:30:28 +00:00
|
|
|
).click();
|
2022-09-14 10:49:56 +00:00
|
|
|
cy.get(
|
|
|
|
|
commonWidgetSelector.parameterInputField(
|
|
|
|
|
datePickerText.labelEnableTimeSection
|
|
|
|
|
)
|
|
|
|
|
).clearAndTypeOnCodeMirror([
|
|
|
|
|
`{{`,
|
|
|
|
|
`components.${commonWidgetText.toggleswitch1}.value}}`,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
openAccordion(commonWidgetText.accordionEvents);
|
|
|
|
|
addDefaultEventHandler(data.alertMessage);
|
|
|
|
|
|
|
|
|
|
openAccordion(commonWidgetText.accordionGenaral);
|
|
|
|
|
addAndVerifyTooltip(
|
|
|
|
|
commonWidgetSelector.draggableWidget(data.widgetName),
|
|
|
|
|
data.tooltipText
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
openEditorSidebar(data.widgetName);
|
|
|
|
|
openAccordion(commonWidgetText.accordionValidation);
|
|
|
|
|
verifyAndModifyParameter(
|
|
|
|
|
commonWidgetText.parameterCustomValidation,
|
|
|
|
|
datePickerText.customValidation(data.widgetName, data.customMessage)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
cy.get(commonWidgetSelector.buttonStylesEditorSideBar).click();
|
|
|
|
|
verifyAndModifyParameter(
|
|
|
|
|
commonWidgetText.parameterBorderRadius,
|
|
|
|
|
commonWidgetText.borderRadiusInput
|
|
|
|
|
);
|
|
|
|
|
|
2023-09-12 07:34:44 +00:00
|
|
|
openAccordion(commonWidgetText.accordionGenaral, [], 1);
|
2022-09-14 10:49:56 +00:00
|
|
|
|
|
|
|
|
cy.get(
|
|
|
|
|
commonWidgetSelector.stylePicker(commonWidgetText.parameterBoxShadow)
|
|
|
|
|
).click();
|
|
|
|
|
|
|
|
|
|
fillBoxShadowParams(
|
|
|
|
|
commonWidgetSelector.boxShadowDefaultParam,
|
|
|
|
|
data.boxShadowParam
|
|
|
|
|
);
|
|
|
|
|
selectColourFromColourPicker(commonWidgetText.boxShadowColor, data.colour);
|
|
|
|
|
|
|
|
|
|
addTextWidgetToVerifyValue(`components.${data.widgetName}.value`);
|
|
|
|
|
cy.dragAndDropWidget(commonWidgetText.toggleSwitch, 600, 160);
|
2023-07-05 07:28:09 +00:00
|
|
|
cy.waitForAutoSave();
|
2022-09-14 10:49:56 +00:00
|
|
|
|
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
|
|
|
|
|
|
|
|
/* verifyDate(data.widgetName, data.date, "DD/MM/YY");
|
|
|
|
|
verifyWidgetText(
|
|
|
|
|
commonWidgetText.text1,
|
|
|
|
|
moment(data.date, "DD/MM/YYYY").format("DD/MM/YY")
|
|
|
|
|
);*/
|
|
|
|
|
|
|
|
|
|
data.date = randomDateOrTime();
|
|
|
|
|
selectAndVerifyDate(data.widgetName, data.date, "DD/MM/YY");
|
|
|
|
|
verifyWidgetText(
|
|
|
|
|
commonWidgetText.text1,
|
|
|
|
|
moment(data.date, "DD/MM/YYYY").format("DD/MM/YY")
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
cy.verifyToastMessage(commonSelectors.toastMessage, data.alertMessage);
|
|
|
|
|
|
|
|
|
|
verifyTooltip(
|
|
|
|
|
commonWidgetSelector.draggableWidget(data.widgetName),
|
|
|
|
|
data.tooltipText
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
cy.get(datePickerSelector.validationFeedbackMessage).should(
|
|
|
|
|
"have.text",
|
|
|
|
|
data.customMessage
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
cy.get(commonWidgetSelector.draggableWidget(data.widgetName))
|
|
|
|
|
.find("input")
|
|
|
|
|
.should("have.css", "border-radius", "20px");
|
|
|
|
|
|
2023-07-05 07:28:09 +00:00
|
|
|
verifyBoxShadowCss(
|
|
|
|
|
`${commonWidgetSelector.draggableWidget(data.widgetName)}>>>input`,
|
|
|
|
|
data.colour,
|
|
|
|
|
data.boxShadowParam,
|
|
|
|
|
"child"
|
|
|
|
|
);
|
2022-09-14 10:49:56 +00:00
|
|
|
|
|
|
|
|
cy.get(commonWidgetSelector.draggableWidget(commonWidgetText.toggleswitch1))
|
|
|
|
|
.find(".form-check-input")
|
|
|
|
|
.click();
|
|
|
|
|
|
|
|
|
|
verifyDate(data.widgetName, datePickerText.defaultTime, "hh:mm A");
|
|
|
|
|
// verifyWidgetText(commonWidgetText.text1, datePickerText.defaultTime);
|
|
|
|
|
|
|
|
|
|
selectAndVerifyTime(data.widgetName, data.randomTime);
|
|
|
|
|
verifyWidgetText(
|
|
|
|
|
commonWidgetText.text1,
|
|
|
|
|
moment(data.randomTime, "hh:mm").format("h:mm A")
|
|
|
|
|
);
|
|
|
|
|
});
|
2022-07-20 07:11:50 +00:00
|
|
|
});
|