ToolJet/cypress-tests/cypress/support/utils/manageUsers.js
Ajith KV 142d54bc50
Fixed failing profile cypress spec (#6245)
* Fix failed profile spec

* Modify data-cy of the dashboard section header

* Fix manage users spec

* Fix user permission spec

* Remove single workspace cypress test cases

* Add indentation changes

* Update self host signup spec

* Update cypress config file

* adding changes to capture downloads

* fix cypress tests for actions

* fecth invitation url from the database

* database test commit

* test commit

* test commit

* test commit

* test commit for pg host

* test commit

* commit for screenshot

* revert test commits

* Update sql task name

* Add changes for actions

* Fix manage groups spec

* Update folder structure

* Fix user permission spec

---------

Co-authored-by: Adish M <[email protected]>
2023-05-09 19:33:37 +05:30

257 lines
8.3 KiB
JavaScript

import { path } from "Texts/common";
import { commonSelectors } from "Selectors/common";
import { usersText } from "Texts/manageUsers";
import { usersSelector } from "Selectors/manageUsers";
import { ssoSelector } from "Selectors/manageSSO";
import { ssoText } from "Texts/manageSSO";
import * as common from "Support/utils/common";
import { commonText } from "Texts/common";
export const manageUsersElements = () => {
cy.get(commonSelectors.breadcrumbTitle).should(($el) => {
expect($el.contents().first().text().trim()).to.eq(
commonText.breadcrumbworkspaceSettingTitle
);
});
cy.get(commonSelectors.breadcrumbPageTitle).verifyVisibleElement(
"have.text",
usersText.breadcrumbUsersPageTitle
);
for (const element in usersSelector.usersElements) {
cy.get(usersSelector.usersElements[element]).verifyVisibleElement(
"have.text",
usersText.usersElements[element]
);
}
cy.get(usersSelector.usersPageTitle).should(($el) => {
expect($el.contents().last().text().trim()).to.eq(usersText.usersPageTitle);
});
cy.get(commonSelectors.inputUserSearch).should("be.visible");
common.searchUser(usersText.adminUserEmail);
cy.contains("td", usersText.adminUserEmail)
.parent()
.within(() => {
cy.get(usersSelector.adminUserName).verifyVisibleElement(
"have.text",
usersText.adminUserName
);
cy.get(usersSelector.adminUserEmail).verifyVisibleElement(
"have.text",
usersText.adminUserEmail
);
cy.get("td small").verifyVisibleElement(
"have.text",
usersText.activeStatus
);
cy.get("td button").verifyVisibleElement(
"have.text",
usersText.adminUserState
);
});
cy.get(usersSelector.userFilterInput).should("be.visible");
cy.get(usersSelector.buttonAddUsers)
.verifyVisibleElement("have.text", usersText.buttonAddUsers)
.click();
cy.get(usersSelector.buttonInviteWithEmail).verifyVisibleElement(
"have.text",
usersText.buttonInviteWithEmail
);
cy.get(usersSelector.buttonUploadCsvFile).verifyVisibleElement(
"have.text",
usersText.buttonUploadCsvFile
);
cy.get(usersSelector.addUsersCardTitle).verifyVisibleElement(
"have.text",
usersText.addUsersCardTitle
);
cy.get(commonSelectors.labelFullNameInput).verifyVisibleElement(
"have.text",
commonText.labelFullNameInput
);
cy.get(commonSelectors.inputFieldFullName).should("be.visible");
cy.get(commonSelectors.labelEmailInput).verifyVisibleElement(
"have.text",
commonText.labelEmailInput
);
cy.get(commonSelectors.inputFieldEmailAddress).should("be.visible");
cy.get(commonSelectors.cancelButton).verifyVisibleElement(
"have.text",
usersText.cancelButton
);
cy.get(usersSelector.buttonInviteUsers).verifyVisibleElement(
"have.text",
usersText.buttonInviteUsers
);
cy.get(commonSelectors.cancelButton).click();
cy.get(usersSelector.addUsersCardTitle).should("not.exist");
cy.get(usersSelector.buttonAddUsers).click();
cy.get(commonSelectors.closeButton).click();
cy.get(usersSelector.addUsersCardTitle).should("not.exist");
cy.get(usersSelector.buttonAddUsers).click();
cy.get(usersSelector.addUsersCardTitle).verifyVisibleElement(
"have.text",
usersText.addUsersCardTitle
);
cy.get(usersSelector.buttonUploadCsvFile).click();
cy.get(usersSelector.helperTextBulkUpload).verifyVisibleElement(
"have.text",
usersText.helperTextBulkUpload
);
cy.get(usersSelector.buttonDownloadTemplate).verifyVisibleElement(
"have.text",
usersText.buttonDownloadTemplate
);
cy.get(usersSelector.iconBulkUpload).should("be.visible");
cy.get(usersSelector.helperTextSelectFile).verifyVisibleElement(
"have.text",
usersText.helperTextSelectFile
);
cy.get(usersSelector.helperTextDropFile).verifyVisibleElement(
"have.text",
usersText.helperTextDropFile
);
cy.get(usersSelector.inputFieldBulkUpload).should("exist");
cy.get(usersSelector.buttonUploadUsers).verifyVisibleElement(
"have.text",
usersText.buttonUploadUsers
);
};
export const inviteUser = (firstName, email) => {
let invitationToken,
organizationToken,
workspaceId,
userId,
url = "";
cy.get(usersSelector.buttonAddUsers).click();
cy.clearAndType(commonSelectors.inputFieldFullName, firstName);
cy.clearAndType(commonSelectors.inputFieldEmailAddress, email);
cy.get(usersSelector.buttonInviteUsers).click();
cy.verifyToastMessage(
commonSelectors.toastMessage,
usersText.userCreatedToast
);
cy.task("updateId", {
dbconfig: Cypress.env("app_db"),
sql: `select invitation_token from users where email='${email}';`,
}).then((resp) => {
invitationToken = resp.rows[0].invitation_token;
cy.task("updateId", {
dbconfig: Cypress.env("app_db"),
sql: "select id from organizations where name='My workspace';",
}).then((resp) => {
workspaceId = resp.rows[0].id;
cy.task("updateId", {
dbconfig: Cypress.env("app_db"),
sql: `select id from users where email='${email}';`,
}).then((resp) => {
userId = resp.rows[0].id;
cy.task("updateId", {
dbconfig: Cypress.env("app_db"),
sql: `select invitation_token from organization_users where user_id='${userId}';`,
}).then((resp) => {
organizationToken = resp.rows[1].invitation_token;
url = `/invitations/${invitationToken}/workspaces/${organizationToken}?oid=${workspaceId}`;
common.logout();
cy.wait(500);
cy.visit(url);
});
});
});
});
};
export const addNewUser = (firstName, email) => {
cy.intercept("POST", "/api/organization_users").as("appLibrary");
cy.clearAndType(commonSelectors.inputFieldFullName, firstName);
cy.clearAndType(commonSelectors.inputFieldEmailAddress, email);
cy.get(usersSelector.createUserButton).click();
cy.wait("@appLibrary").then((res) => {
const invitation1 = res.response.body.users.user.invitation_token;
const invitation2 = res.response.body.users.invitation_token;
const url = `http://localhost:8082/invitations/${invitation1}/workspaces/${invitation2}`;
common.logout();
cy.visit(url);
});
};
export const confirmInviteElements = () => {
cy.get(commonSelectors.invitePageHeader).verifyVisibleElement(
"have.text",
commonText.invitePageHeader
);
cy.get(commonSelectors.invitePageSubHeader).verifyVisibleElement(
"have.text",
commonText.invitePageSubHeader
);
cy.get(commonSelectors.userNameInputLabel).verifyVisibleElement(
"have.text",
commonText.userNameInputLabel
);
cy.get(commonSelectors.invitedUserName).should("be.visible");
cy.get(commonSelectors.emailInputLabel).verifyVisibleElement(
"have.text",
commonText.emailInputLabel
);
cy.get(commonSelectors.invitedUserEmail).should("be.visible");
cy.get(commonSelectors.passwordLabel).verifyVisibleElement(
"have.text",
commonText.passwordLabel
);
cy.get(commonSelectors.passwordInputField).should("be.visible");
cy.get(commonSelectors.acceptInviteButton)
.verifyVisibleElement("have.text", commonText.acceptInviteButton)
.should("be.disabled");
cy.get(commonSelectors.signUpTermsHelperText).should(($el) => {
expect($el.contents().first().text().trim()).to.eq(
commonText.signUpTermsHelperText
);
});
cy.get(commonSelectors.termsOfServiceLink)
.verifyVisibleElement("have.text", commonText.termsOfServiceLink)
.and("have.attr", "href")
.and("equal", "https://www.tooljet.com/terms");
cy.get(commonSelectors.privacyPolicyLink)
.verifyVisibleElement("have.text", commonText.privacyPolicyLink)
.and("have.attr", "href")
.and("equal", "https://www.tooljet.com/privacy");
cy.get("body").then(($el) => {
if ($el.text().includes("Google")) {
cy.get(ssoSelector.googleSSOText).verifyVisibleElement(
"have.text",
ssoText.googleSignUpText
);
cy.get(ssoSelector.gitSSOText).verifyVisibleElement(
"have.text",
ssoText.gitSignUpText
);
cy.get(commonSelectors.onboardingSeperator).should("be.visible");
}
});
};
export const userStatus = (email) => {
common.navigateToManageUsers();
common.searchUser(email);
cy.contains("td", email)
.parent()
.within(() => {
cy.get("td button").click();
});
};