umami/cypress/e2e/user.cy.ts
2026-02-12 14:09:22 +05:30

65 lines
2.4 KiB
TypeScript

describe("User tests", () => {
Cypress.session.clearAllSavedSessions();
beforeEach(() => {
cy.login(Cypress.env("syncfuse_user"), Cypress.env("syncfuse_password"));
cy.visit("/settings/users");
});
it("Add a User", () => {
// add user
cy.contains(/Create user/i).should("be.visible");
cy.getDataTest("button-create-user").click();
cy.getDataTest("input-username").find("input").as("inputName").click();
cy.get("@inputName").type("Test-user", { delay: 0 });
cy.getDataTest("input-password").find("input").as("inputPassword").click();
cy.get("@inputPassword").type("testPasswordCypress", { delay: 0 });
cy.getDataTest("dropdown-role").click();
cy.getDataTest("dropdown-item-user").click();
cy.getDataTest("button-submit").click();
cy.get('td[label="Username"]').should("contain.text", "Test-user");
cy.get('td[label="Role"]').should("contain.text", "User");
});
it("Edit a User role and password", () => {
// edit user
cy.get("table tbody tr")
.contains("td", /Test-user/i)
.parent()
.within(() => {
cy.getDataTest("link-button-edit").click(); // Clicks the button inside the row
});
cy.getDataTest("input-password").find("input").as("inputPassword").click();
cy.get("@inputPassword").type("newPassword", { delay: 0 });
cy.getDataTest("dropdown-role").click();
cy.getDataTest("dropdown-item-viewOnly").click();
cy.getDataTest("button-submit").click();
cy.visit("/settings/users");
cy.get("table tbody tr")
.contains("td", /Test-user/i)
.parent()
.should("contain.text", "View only");
cy.logout();
cy.url().should("eq", Cypress.config().baseUrl + "/login");
cy.getDataTest("input-username").find("input").as("inputUsername").click();
cy.get("@inputUsername").type("Test-user", { delay: 0 });
cy.get("@inputUsername").click();
cy.getDataTest("input-password").find("input").type("newPassword", { delay: 0 });
cy.getDataTest("button-submit").click();
cy.url().should("eq", Cypress.config().baseUrl + "/dashboard");
});
it("Delete a user", () => {
// delete user
cy.get("table tbody tr")
.contains("td", /Test-user/i)
.parent()
.within(() => {
cy.getDataTest("button-delete").click(); // Clicks the button inside the row
});
cy.contains(/Are you sure you want to delete Test-user?/i).should("be.visible");
cy.getDataTest("button-confirm").click();
});
});