mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-03 13:28:50 +00:00
217 lines
7.2 KiB
JavaScript
217 lines
7.2 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 = {};
|
|
|
|
describe("User permissions", () => {
|
|
beforeEach(() => {
|
|
cy.defaultWorkspaceLogin();
|
|
cy.removeAssignedApps();
|
|
permissions.reset();
|
|
cy.skipWalkthrough();
|
|
});
|
|
it("Should verify the Create and Delete app permission", () => {
|
|
data.appName = `${fake.companyName}-App`;
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.get(commonSelectors.dashboardAppCreateButton).should("be.disabled");
|
|
cy.logoutApi();
|
|
|
|
cy.apiLogin();
|
|
cy.apiCreateApp(data.appName);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(500);
|
|
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.appsLink).click();
|
|
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");
|
|
});
|
|
cy.wait(1000);
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsCreateCheck).check();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsDeleteCheck).check();
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.get(commonSelectors.appCreateButton).should("exist");
|
|
common.viewAppCardOptions(data.appName);
|
|
cy.contains("Delete app").should("exist");
|
|
|
|
common.logout();
|
|
cy.defaultWorkspaceLogin();
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsDeleteCheck).uncheck();
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(1000);
|
|
common.viewAppCardOptions(data.appName);
|
|
cy.contains("Delete app").should("not.exist");
|
|
|
|
data.appName = `${fake.companyName}-App`;
|
|
cy.createApp(data.appName);
|
|
|
|
cy.dragAndDropWidget("Table", 50, 50);
|
|
cy.backToApps();
|
|
common.viewAppCardOptions(data.appName);
|
|
cy.contains("Delete app").should("exist");
|
|
cy.get(commonSelectors.appCardOptions(commonText.deleteAppOption)).click();
|
|
cy.get(commonSelectors.buttonSelector("Yes")).click();
|
|
|
|
common.logout();
|
|
cy.defaultWorkspaceLogin();
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.appsCreateCheck).uncheck();
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(1000);
|
|
cy.contains("Create new application").should("not.exist");
|
|
});
|
|
|
|
it("Should verify the View and Edit permission", () => {
|
|
data.appName = `${fake.companyName}-App`;
|
|
|
|
cy.apiCreateApp(data.appName);
|
|
cy.reload();
|
|
common.navigateToManageGroups();
|
|
cy.wait(1000);
|
|
cy.get(groupsSelector.appsLink).click();
|
|
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");
|
|
});
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(500);
|
|
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"
|
|
);
|
|
});
|
|
common.logout();
|
|
|
|
cy.defaultWorkspaceLogin();
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.appsLink).click();
|
|
cy.wait(500);
|
|
cy.contains("tr", data.appName)
|
|
.parent()
|
|
.within(() => {
|
|
cy.get("td input").eq(1).check();
|
|
});
|
|
cy.verifyToastMessage(
|
|
commonSelectors.toastMessage,
|
|
"App permissions updated"
|
|
);
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(500);
|
|
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");
|
|
});
|
|
|
|
it("Should verify Create/Update/Delete folder permission", () => {
|
|
data.folderName = `${fake.companyName.toLowerCase()}-folder`;
|
|
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.foldersCreateCheck).check();
|
|
|
|
cy.logoutApi();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.wait(500);
|
|
|
|
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();
|
|
common.logout();
|
|
|
|
cy.defaultWorkspaceLogin();
|
|
common.navigateToManageGroups();
|
|
cy.get(groupsSelector.permissionsLink).click();
|
|
cy.get(groupsSelector.foldersCreateCheck).uncheck();
|
|
|
|
common.logout();
|
|
cy.apiLogin("[email protected]", usersText.password);
|
|
cy.visit("/my-workspace");
|
|
cy.get(commonSelectors.createNewFolderButton).should("not.exist");
|
|
});
|
|
|
|
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");
|
|
cy.logoutApi();
|
|
});
|
|
});
|