ToolJet/cypress-tests/cypress/e2e/exportImport/import.cy.js

216 lines
7.5 KiB
JavaScript
Raw Normal View History

2022-12-27 14:40:33 +00:00
import { commonSelectors } from "Selectors/common";
import {
appVersionSelectors,
exportAppModalSelectors,
importSelectors,
} from "Selectors/exportImport";
import { exportAppModalText, importText } from "Texts/exportImport";
import {
clickOnExportButtonAndVerify,
createNewVersion,
exportAllVersionsAndVerify,
} from "Support/utils/exportImport";
import { selectAppCardOption, navigateToAppEditor } from "Support/utils/common";
import { commonText } from "Texts/common";
import { dashboardSelector } from "Selectors/dashboard";
import { fake } from "Fixtures/fake";
import { buttonText } from "Texts/button";
describe("App Import Functionality", () => {
let appData;
var data = {};
data.appName = `${fake.companyName}-App`;
data.appReName = `${fake.companyName}-${fake.companyName}-App`;
2022-12-27 14:40:33 +00:00
let currentVersion = "";
let otherVersions = "";
const toolJetImage = "cypress/fixtures/Image/tooljet.png";
const appFile = "cypress/fixtures/templates/test-app.json";
let exportedFilePath;
beforeEach(() => {
cy.appUILogin();
});
before(() => {
cy.fixture("templates/test-app.json").then((app) => {
cy.exec("cd ./cypress/downloads/ && rm -rf *", {
failOnNonZeroExit: false,
});
2022-12-27 14:40:33 +00:00
appData = app;
});
});
it("Verify the Import functionality of an Application", () => {
cy.get("body").then(($title) => {
if ($title.text().includes(commonText.welcomeTooljetWorkspace)) {
2022-12-27 14:40:33 +00:00
cy.get(dashboardSelector.importAppButton).click();
} else {
cy.get(importSelectors.dropDownMenu).should("be.visible").click();
cy.get(importSelectors.importOptionLabel).verifyVisibleElement(
"have.text",
importText.importOption
);
}
});
cy.get(importSelectors.importOptionInput).selectFile(toolJetImage, {
force: true,
});
cy.verifyToastMessage(
2023-03-31 15:25:08 +00:00
commonSelectors.toastMessage,
importText.couldNotImportAppToastMessage,
false
2022-12-27 14:40:33 +00:00
);
cy.get(importSelectors.importOptionInput).selectFile(appFile, {
force: true,
});
cy.verifyToastMessage(
2023-03-31 15:25:08 +00:00
commonSelectors.toastMessage,
2022-12-27 14:40:33 +00:00
importText.appImportedToastMessage
);
cy.get(".driver-close-btn").click();
2022-12-27 14:40:33 +00:00
cy.get(commonSelectors.appNameInput).verifyVisibleElement(
2023-06-20 13:50:49 +00:00
"contain.value",
2022-12-27 14:40:33 +00:00
appData.name
);
cy.modifyCanvasSize(900, 600);
2022-12-27 14:40:33 +00:00
cy.dragAndDropWidget(buttonText.defaultWidgetText);
cy.get(appVersionSelectors.appVersionLabel).should("be.visible");
cy.renameApp(data.appName);
cy.get(commonSelectors.appNameInput).verifyVisibleElement(
2023-06-20 13:50:49 +00:00
"contain.value",
2022-12-27 14:40:33 +00:00
data.appName
);
cy.waitForAutoSave();
cy.get(commonSelectors.editorPageLogo).should("be.visible").click();
cy.get(commonSelectors.appHeaderLable).should("be.visible");
cy.reload();
2022-12-27 14:40:33 +00:00
selectAppCardOption(
data.appName,
commonSelectors.appCardOptions(commonText.exportAppOption)
);
cy.get(exportAppModalSelectors.currentVersionSection).should("be.visible");
cy.get(
exportAppModalSelectors.versionRadioButton((currentVersion = "v1"))
).verifyVisibleElement("be.checked");
clickOnExportButtonAndVerify(
exportAppModalText.exportSelectedVersion,
data.appName
);
cy.exec("ls ./cypress/downloads/").then((result) => {
cy.log(result);
const downloadedAppExportFileName = result.stdout.split("\n")[0];
exportedFilePath = `cypress/downloads/${downloadedAppExportFileName}`;
cy.log(exportedFilePath);
cy.get(importSelectors.dropDownMenu).should("be.visible").click();
cy.get(importSelectors.importOptionLabel).verifyVisibleElement(
"have.text",
importText.importOption
);
cy.get(importSelectors.importOptionInput).selectFile(exportedFilePath, {
force: true,
});
cy.verifyToastMessage(
2023-03-31 15:25:08 +00:00
commonSelectors.toastMessage,
2022-12-27 14:40:33 +00:00
importText.appImportedToastMessage
);
cy.get(
`[data-cy="draggable-widget-${buttonText.defaultWidgetName}"]`
).should("be.visible");
cy.readFile(exportedFilePath).then((newApp) => {
let exportedAppData = newApp;
cy.get(commonSelectors.appNameInput).verifyVisibleElement(
2023-06-20 13:50:49 +00:00
"contain.value",
exportedAppData.appV2.name
2022-12-27 14:40:33 +00:00
);
cy.get(
appVersionSelectors.currentVersionField((currentVersion = "v1"))
).verifyVisibleElement(
"have.text",
exportedAppData.appV2.appVersions[0].name
2022-12-27 14:40:33 +00:00
);
});
cy.exec("cd ./cypress/downloads/ && rm -rf *");
});
cy.renameApp(data.appReName);
cy.get(commonSelectors.editorPageLogo).click();
cy.get(commonSelectors.appHeaderLable).should("be.visible");
cy.reload();
2022-12-27 14:40:33 +00:00
navigateToAppEditor(data.appReName);
2023-04-25 10:07:18 +00:00
cy.wait(500);
2022-12-27 14:40:33 +00:00
cy.get(appVersionSelectors.appVersionMenuField)
.should("be.visible")
.click();
2023-06-20 13:50:49 +00:00
createNewVersion((otherVersions = ["v2"]), (currentVersion = "v1"));
2022-12-27 14:40:33 +00:00
cy.get(appVersionSelectors.currentVersionField((otherVersions = "v2")))
.should("be.visible")
.click()
.then(() => {
cy.get(appVersionSelectors.appVersionContentList)
.invoke("text")
.then((versionText) => {
cy.log(versionText);
cy.get(commonSelectors.editorPageLogo).click();
cy.get(commonSelectors.appHeaderLable).should("be.visible");
cy.reload();
2022-12-27 14:40:33 +00:00
selectAppCardOption(
data.appReName,
commonSelectors.appCardOptions(commonText.exportAppOption)
);
exportAllVersionsAndVerify(
data.appReName,
(currentVersion = "v2"),
(otherVersions = ["v1"])
);
cy.exec("ls ./cypress/downloads/").then((result) => {
cy.log(result);
const newdownloadedAppExportFileName =
result.stdout.split("\n")[0];
cy.log(newdownloadedAppExportFileName);
exportedFilePath = `cypress/downloads/${newdownloadedAppExportFileName}`;
cy.get(importSelectors.dropDownMenu).should("be.visible").click();
cy.get(importSelectors.importOptionLabel).verifyVisibleElement(
"have.text",
importText.importOption
);
cy.get(importSelectors.importOptionInput).selectFile(
exportedFilePath,
{
force: true,
}
);
cy.verifyToastMessage(
2023-03-31 15:25:08 +00:00
commonSelectors.toastMessage,
2022-12-27 14:40:33 +00:00
importText.appImportedToastMessage
);
cy.get(appVersionSelectors.appVersionMenuField).click();
cy.get(appVersionSelectors.appVersionContentList).should(
"have.text",
versionText
);
cy.get(
`[data-cy="draggable-widget-${buttonText.defaultWidgetName}"]`
).should("be.visible");
cy.readFile(exportedFilePath).then((newApp) => {
let exportedAppData = newApp;
cy.get(commonSelectors.appNameInput).verifyVisibleElement(
2023-06-20 13:50:49 +00:00
"contain.value",
exportedAppData.appV2.name
2022-12-27 14:40:33 +00:00
);
cy.get(
appVersionSelectors.currentVersionField(
(currentVersion = "v2")
)
).verifyVisibleElement(
"have.text",
exportedAppData.appV2.appVersions[1].name
2022-12-27 14:40:33 +00:00
);
});
});
cy.exec("cd ./cypress/downloads/ && rm -rf *");
});
});
});
2023-06-20 13:50:49 +00:00
});