ToolJet/cypress-tests/cypress/support/utils/exportImport.js

140 lines
4.9 KiB
JavaScript
Raw Normal View History

2022-12-27 14:40:33 +00:00
import {
appVersionSelectors,
exportAppModalSelectors,
importSelectors,
2022-12-27 14:40:33 +00:00
} from "Selectors/exportImport";
import { exportAppModalText, appVersionText } from "Texts/exportImport";
import { commonSelectors } from "Selectors/common";
import { verifyModal, commonWidgetSelector } from "Support/utils/common";
import { importText } from "Texts/exportImport";
2022-12-27 14:40:33 +00:00
export const verifyElementsOfExportModal = (
currentVersionName,
otherVersionName = []
) => {
cy.get(
commonSelectors.modalTitle(exportAppModalText.selectVersionTitle)
).verifyVisibleElement("have.text", exportAppModalText.selectVersionTitle);
cy.get(exportAppModalSelectors.currentVersionLabel).verifyVisibleElement(
"have.text",
exportAppModalText.currentVersionLabel
);
cy.get(
exportAppModalSelectors.versionText(currentVersionName)
).verifyVisibleElement("have.text", currentVersionName);
cy.get(exportAppModalSelectors.otherVersionSection).then(($ele) => {
if ($ele.text().includes(exportAppModalText.noOtherVersionText)) {
cy.get(exportAppModalSelectors.noOtherVersionText).verifyVisibleElement(
"have.text",
exportAppModalText.noOtherVersionText
);
} else {
cy.get('[data-cy="other-version-label"]').verifyVisibleElement(
"have.text",
"Other Versions"
);
2022-12-27 14:40:33 +00:00
otherVersionName.forEach((elements) => {
cy.get(exportAppModalSelectors.versionText(elements))
.verifyVisibleElement("have.text", elements);
cy.get(
exportAppModalSelectors.versionRadioButton(elements)
).verifyVisibleElement("not.be.checked");
cy.get(exportAppModalSelectors.versionCreatedTime(elements)).should("be.visible");
2022-12-27 14:40:33 +00:00
});
}
});
cy.get(
commonSelectors.buttonSelector(exportAppModalText.exportAll)
).verifyVisibleElement("have.text", exportAppModalText.exportAll);
cy.get(
commonSelectors.buttonSelector(exportAppModalText.exportSelectedVersion)
).verifyVisibleElement("have.text", exportAppModalText.exportSelectedVersion);
cy.get(exportAppModalSelectors.modalCloseButton).should("be.visible");
cy.get('input[type="checkbox"]')
.parent()
.contains("Export ToolJet table schema")
.should("be.visible");
2022-12-27 14:40:33 +00:00
};
export const createNewVersion = (newVersion = [], version) => {
cy.contains(appVersionText.createNewVersion).should("be.visible").click();
2022-12-27 14:40:33 +00:00
verifyModal(
appVersionText.createNewVersion,
appVersionText.createNewVersion,
2022-12-27 14:40:33 +00:00
appVersionSelectors.createVersionInputField
);
cy.get(appVersionSelectors.createNewVersionButton).click();
2022-12-27 14:40:33 +00:00
cy.verifyToastMessage(
commonSelectors.toastMessage,
2022-12-27 14:40:33 +00:00
appVersionText.emptyToastMessage
);
2023-06-20 13:50:49 +00:00
cy.get(appVersionSelectors.createVersionInputField).click();
cy.contains(`[id*="react-select-"]`, version).click();
2022-12-27 14:40:33 +00:00
cy.get(appVersionSelectors.versionNameInputField).click().type(newVersion[0]);
cy.get(appVersionSelectors.createNewVersionButton).click();
2022-12-27 14:40:33 +00:00
cy.verifyToastMessage(
commonSelectors.toastMessage,
2022-12-27 14:40:33 +00:00
appVersionText.createdToastMessage
);
cy.get(appVersionSelectors.currentVersionField(newVersion[0])).should(
"be.visible"
);
};
export const clickOnExportButtonAndVerify = (buttonText, appName) => {
cy.get(commonSelectors.buttonSelector(buttonText)).click();
2023-06-20 13:50:49 +00:00
cy.wait(1000);
2022-12-27 14:40:33 +00:00
cy.exec("ls ./cypress/downloads/").then((result) => {
const downloadedAppExportFileName = result.stdout.split("\n")[0];
2023-06-20 13:50:49 +00:00
expect(downloadedAppExportFileName).to.contain.string(
appName.toLowerCase()
);
2022-12-27 14:40:33 +00:00
});
};
export const exportAllVersionsAndVerify = (
appName,
currentVersionName,
otherVersionName = [],
isChecked = []
2022-12-27 14:40:33 +00:00
) => {
cy.get(exportAppModalSelectors.currentVersionSection).should("be.visible");
cy.get(
exportAppModalSelectors.versionRadioButton(currentVersionName)
).verifyVisibleElement("be.checked");
cy.get(exportAppModalSelectors.otherVersionSection).then(($ele) => {
if ($ele.text().includes(exportAppModalText.noOtherVersionText)) {
cy.get(exportAppModalSelectors.noOtherVersionText).verifyVisibleElement(
"have.text",
exportAppModalText.noOtherVersionText
);
} else {
otherVersionName.forEach((elements) => {
cy.get(exportAppModalSelectors.versionText(elements)).verifyVisibleElement("have.text", elements);
cy.get(
exportAppModalSelectors.versionRadioButton(elements)
).should("be.visible").and(isChecked ? "be.checked" : "not.be.checked");
2022-12-27 14:40:33 +00:00
});
}
clickOnExportButtonAndVerify(exportAppModalText.exportAll, appName);
});
2023-06-20 13:50:49 +00:00
};
export const importAndVerifyApp = (filePath, expectedToast) => {
cy.get(importSelectors.importOptionInput)
.eq(0)
.selectFile(filePath, { force: true });
cy.wait(2000);
if (expectedToast) {
cy.verifyToastMessage(commonSelectors.toastMessage, expectedToast);
} else {
cy.get(importSelectors.importAppButton).click();
cy.get(".go3958317564")
.should("be.visible")
.and("have.text", importText.appImportedToastMessage);
}
};