mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
230 lines
7.8 KiB
JavaScript
230 lines
7.8 KiB
JavaScript
import { commonSelectors } from "Selectors/common";
|
|
import { fake } from "Fixtures/fake";
|
|
import { usersText } from "Texts/manageUsers";
|
|
import * as common from "Support/utils/common";
|
|
import { dashboardText, emptyDashboardText } from "Texts/dashboard";
|
|
import { groupsSelector } from "Selectors/manageGroups";
|
|
import * as permissions from "Support/utils/userPermissions";
|
|
import { commonText } from "Texts/common";
|
|
import { workspaceVarSelectors } from "Selectors/workspaceVariable";
|
|
import { workspaceVarText } from "Texts/workspacevarText";
|
|
|
|
const data = {};
|
|
data.firstName = fake.firstName;
|
|
data.lastName = fake.lastName.replaceAll("[^A-Za-z]", "");
|
|
data.email = fake.email.toLowerCase();
|
|
data.appName = `${fake.companyName}-App`;
|
|
data.folderName = `${fake.companyName.toLowerCase()}-folder`;
|
|
|
|
describe("User permissions", () => {
|
|
before(() => {
|
|
cy.intercept("GET", "/api/apps?page=1&folder=&searchKey=").as("homePage");
|
|
cy.appUILogin();
|
|
permissions.reset();
|
|
cy.get(commonSelectors.homePageLogo).click();
|
|
cy.wait("@homePage");
|
|
cy.createApp();
|
|
cy.renameApp(data.appName);
|
|
cy.dragAndDropWidget("Table", 250, 250);
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
cy.reloadAppForTheElement(data.appName);
|
|
permissions.addNewUserMW(data.firstName, data.email);
|
|
common.logout();
|
|
});
|
|
beforeEach(() => {
|
|
cy.appUILogin();
|
|
cy.visitTheWorkspace("My workspace");
|
|
});
|
|
|
|
it("Should verify the create new app permission", () => {
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.get("body").then(($title) => {
|
|
if ($title.text().includes(dashboardText.emptyPageDescription)) {
|
|
cy.get(commonSelectors.dashboardAppCreateButton).click();
|
|
cy.verifyToastMessage(
|
|
commonSelectors.toastMessage,
|
|
usersText.createAppPermissionToast
|
|
);
|
|
} else {
|
|
cy.contains(dashboardText.createAppButton).should("not.exist");
|
|
}
|
|
});
|
|
common.logout();
|
|
});
|
|
|
|
it("Should verify the View and Edit permission", () => {
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.appSearchBox).click();
|
|
cy.get(groupsSelector.searchBoxOptions).contains(data.appName).click();
|
|
cy.get(groupsSelector.selectAddButton).click();
|
|
cy.get("table").contains("td", data.appName);
|
|
cy.contains("td", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get("td input").first().should("be.checked");
|
|
});
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.contains(data.appName).should("exist");
|
|
cy.get(commonSelectors.appCard(data.appName)).should(
|
|
"contain.text",
|
|
data.appName
|
|
);
|
|
cy.contains("div", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get(commonSelectors.appTitle(data.appName)).trigger("mouseover");
|
|
cy.get(commonSelectors.launchButton).should(
|
|
"have.class",
|
|
"tj-disabled-btn"
|
|
);
|
|
});
|
|
|
|
permissions.adminLogin();
|
|
cy.contains("tr", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get("td input").eq(1).check();
|
|
});
|
|
cy.verifyToastMessage(
|
|
commonSelectors.toastMessage,
|
|
"App permissions updated"
|
|
);
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.get(commonSelectors.appCard(data.appName)).should(
|
|
"contain.text",
|
|
data.appName
|
|
);
|
|
cy.contains("div", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get(commonSelectors.appTitle(data.appName)).trigger("mouseover");
|
|
});
|
|
cy.get(commonSelectors.launchButton).should(
|
|
"have.class",
|
|
"tj-disabled-btn"
|
|
);
|
|
cy.get(commonSelectors.editButton).should("exist").and("be.enabled");
|
|
|
|
cy.get(commonSelectors.workspaceName).click();
|
|
cy.contains(`${data.email}`).click();
|
|
cy.contains(data.appName).should("not.exist");
|
|
|
|
cy.get(commonSelectors.workspaceName).click();
|
|
cy.contains("My workspace").should("be.visible").click();
|
|
cy.wait(200);
|
|
});
|
|
|
|
it("Should verify the Create and Delete app permission", () => {
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsCreateCheck).check();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsDeleteCheck).check();
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.get(commonSelectors.appCreateButton).should("exist");
|
|
common.viewAppCardOptions(data.appName);
|
|
cy.contains("Delete app").should("exist");
|
|
|
|
permissions.adminLogin();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsDeleteCheck).uncheck();
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
common.viewAppCardOptions(data.appName);
|
|
cy.contains("Delete app").should("not.exist");
|
|
|
|
cy.createApp();
|
|
cy.renameApp(data.email);
|
|
cy.dragAndDropWidget("Table", 50, 50);
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
cy.reloadAppForTheElement(data.email);
|
|
common.viewAppCardOptions(data.email);
|
|
cy.contains("Delete app").should("exist");
|
|
cy.get(commonSelectors.appCardOptions(commonText.deleteAppOption)).click();
|
|
cy.get(commonSelectors.buttonSelector("Yes")).click();
|
|
|
|
permissions.adminLogin();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsCreateCheck).uncheck();
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.contains("Create new application").should("not.exist");
|
|
});
|
|
|
|
it("Should verify Create/Update/Delete folder permission", () => {
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.foldersCreateCheck).check();
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
|
|
cy.get(commonSelectors.createNewFolderButton).click();
|
|
cy.clearAndType(commonSelectors.folderNameInput, data.folderName);
|
|
cy.get(commonSelectors.createFolderButton).click();
|
|
cy.contains(data.folderName).should("exist");
|
|
|
|
cy.contains("div", data.folderName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get(commonSelectors.folderCardOptions(data.folderName)).invoke(
|
|
"click"
|
|
);
|
|
});
|
|
cy.get(commonSelectors.deleteFolderOption(data.folderName)).click();
|
|
cy.get(commonSelectors.buttonSelector("Yes")).click();
|
|
|
|
permissions.adminLogin();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.foldersCreateCheck).uncheck();
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
|
|
permissions.adminLogin();
|
|
cy.contains("td", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get("td a").contains("Remove").click();
|
|
});
|
|
|
|
common.logout();
|
|
cy.login(data.email, usersText.password);
|
|
cy.contains(data.appName).should("not.exist");
|
|
|
|
common.logout();
|
|
cy.appUILogin();
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Create/Update/Delete workspace variable permission", () => {
|
|
common.navigateToWorkspaceVariable();
|
|
cy.get('[data-cy="alert-info-text"]>>.text-muted').verifyVisibleElement(
|
|
"have.text",
|
|
"There are no Workspace variables. Workspace variables are being deprecated soon, so please use Workspace constants instead."
|
|
);
|
|
cy.get(
|
|
'[data-cy="go-to-workspace-constants-option-button"]'
|
|
).verifyVisibleElement("have.text", "Go to workspace constants");
|
|
common.logout();
|
|
|
|
cy.login(data.email, usersText.password);
|
|
common.navigateToWorkspaceVariable();
|
|
cy.get('[data-cy="alert-info-text"]>>.text-muted').verifyVisibleElement(
|
|
"have.text",
|
|
"There are no Workspace variables. Workspace variables are being deprecated soon, so please use Workspace constants instead."
|
|
);
|
|
cy.get(
|
|
'[data-cy="go-to-workspace-constants-option-button"]'
|
|
).verifyVisibleElement("have.text", "Go to workspace constants");
|
|
});
|
|
});
|