231 lines
8.1 KiB
TypeScript
231 lines
8.1 KiB
TypeScript
describe("Roles and Permissions Management", () => {
|
|
beforeEach(() => {
|
|
cy.login();
|
|
});
|
|
|
|
describe("Roles Management", () => {
|
|
beforeEach(() => {
|
|
cy.visit("/roles");
|
|
cy.waitForLoading();
|
|
});
|
|
|
|
it("should display roles list page", () => {
|
|
cy.contains("مدیریت نقشها").should("be.visible");
|
|
cy.contains("مدیریت نقشها و دسترسیهای سیستم").should("be.visible");
|
|
cy.get('[title="نقش جدید"]').should("be.visible");
|
|
});
|
|
|
|
it("should create a new role", () => {
|
|
cy.get('[title="نقش جدید"]').click();
|
|
|
|
cy.url().should("include", "/roles/create");
|
|
cy.contains("نقش جدید").should("be.visible");
|
|
|
|
// Fill role form
|
|
cy.get('input[name="name"]').type("مدیر محصولات");
|
|
cy.get('textarea[name="description"]').type(
|
|
"مسئول مدیریت محصولات و کاتگوریها"
|
|
);
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.url().should("include", "/roles");
|
|
cy.contains("نقش با موفقیت ایجاد شد").should("be.visible");
|
|
cy.contains("مدیر محصولات").should("be.visible");
|
|
});
|
|
|
|
it("should edit a role", () => {
|
|
cy.get('[title="ویرایش"]').first().click();
|
|
|
|
cy.url().should("include", "/roles/");
|
|
cy.url().should("include", "/edit");
|
|
|
|
cy.get('input[name="name"]').clear().type("مدیر فروش");
|
|
cy.get('textarea[name="description"]')
|
|
.clear()
|
|
.type("مسئول مدیریت فروش و سفارشات");
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.url().should("include", "/roles");
|
|
cy.contains("نقش با موفقیت ویرایش شد").should("be.visible");
|
|
cy.contains("مدیر فروش").should("be.visible");
|
|
});
|
|
|
|
it("should delete a role", () => {
|
|
cy.get('[title="حذف"]').first().click();
|
|
|
|
cy.get(".modal").should("be.visible");
|
|
cy.get("button").contains("حذف").click();
|
|
|
|
cy.contains("نقش با موفقیت حذف شد").should("be.visible");
|
|
});
|
|
|
|
it("should view role details", () => {
|
|
cy.get('[title="مشاهده جزئیات"]').first().click();
|
|
|
|
cy.url().should("include", "/roles/");
|
|
cy.contains("جزئیات نقش").should("be.visible");
|
|
cy.contains("لیست کاربران").should("be.visible");
|
|
cy.contains("دسترسیها").should("be.visible");
|
|
});
|
|
|
|
it("should manage role permissions", () => {
|
|
cy.get('[title="مدیریت دسترسیها"]').first().click();
|
|
|
|
cy.url().should("include", "/roles/");
|
|
cy.url().should("include", "/permissions");
|
|
|
|
cy.contains("مدیریت دسترسیهای نقش").should("be.visible");
|
|
|
|
// Assign permission
|
|
cy.get('input[type="checkbox"]').first().check();
|
|
cy.get("button").contains("ذخیره تغییرات").click();
|
|
|
|
cy.contains("دسترسیها با موفقیت بهروزرسانی شد").should("be.visible");
|
|
});
|
|
|
|
it("should search roles", () => {
|
|
cy.get('input[placeholder*="جستجو"]').type("مدیر");
|
|
cy.get("button").contains("جستجو").click();
|
|
|
|
cy.waitForLoading();
|
|
cy.get("table tbody tr").should("contain", "مدیر");
|
|
});
|
|
|
|
it("should validate role form", () => {
|
|
cy.get('[title="نقش جدید"]').click();
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.contains("نام نقش الزامی است").should("be.visible");
|
|
});
|
|
});
|
|
|
|
describe("Permissions Management", () => {
|
|
beforeEach(() => {
|
|
cy.visit("/permissions");
|
|
cy.waitForLoading();
|
|
});
|
|
|
|
it("should display permissions list page", () => {
|
|
cy.contains("لیست دسترسیها").should("be.visible");
|
|
cy.contains("نمایش دسترسیهای سیستم").should("be.visible");
|
|
cy.get('[title="دسترسی جدید"]').should("be.visible");
|
|
});
|
|
|
|
it("should create a new permission", () => {
|
|
cy.get('[title="دسترسی جدید"]').click();
|
|
|
|
cy.url().should("include", "/permissions/create");
|
|
cy.contains("دسترسی جدید").should("be.visible");
|
|
|
|
// Fill permission form
|
|
cy.get('input[name="title"]').type("مدیریت کاربران");
|
|
cy.get('textarea[name="description"]').type(
|
|
"دسترسی به مدیریت کاربران سیستم"
|
|
);
|
|
cy.get('input[name="resource"]').type("users");
|
|
cy.get('input[name="action"]').type("manage");
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.url().should("include", "/permissions");
|
|
cy.contains("دسترسی با موفقیت ایجاد شد").should("be.visible");
|
|
cy.contains("مدیریت کاربران").should("be.visible");
|
|
});
|
|
|
|
it("should edit a permission", () => {
|
|
cy.get('[title="ویرایش"]').first().click();
|
|
|
|
cy.url().should("include", "/permissions/");
|
|
cy.url().should("include", "/edit");
|
|
|
|
cy.get('input[name="title"]').clear().type("نمایش کاربران");
|
|
cy.get('input[name="action"]').clear().type("view");
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.url().should("include", "/permissions");
|
|
cy.contains("دسترسی با موفقیت ویرایش شد").should("be.visible");
|
|
cy.contains("نمایش کاربران").should("be.visible");
|
|
});
|
|
|
|
it("should delete a permission", () => {
|
|
cy.get('[title="حذف"]').first().click();
|
|
|
|
cy.get(".modal").should("be.visible");
|
|
cy.get("button").contains("حذف").click();
|
|
|
|
cy.contains("دسترسی با موفقیت حذف شد").should("be.visible");
|
|
});
|
|
|
|
it("should search permissions", () => {
|
|
cy.get('input[placeholder*="جستجو"]').type("کاربر");
|
|
cy.get("button").contains("جستجو").click();
|
|
|
|
cy.waitForLoading();
|
|
cy.get("table tbody tr").should("contain", "کاربر");
|
|
});
|
|
|
|
it("should filter permissions by resource", () => {
|
|
cy.get('select[name="resource"]').select("products");
|
|
cy.get("button").contains("اعمال فیلتر").click();
|
|
|
|
cy.waitForLoading();
|
|
cy.get("table tbody tr").should("contain", "products");
|
|
});
|
|
|
|
it("should validate permission form", () => {
|
|
cy.get('[title="دسترسی جدید"]').click();
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
|
|
cy.contains("عنوان دسترسی الزامی است").should("be.visible");
|
|
cy.contains("منبع الزامی است").should("be.visible");
|
|
cy.contains("عمل الزامی است").should("be.visible");
|
|
});
|
|
|
|
it("should show permission usage in roles", () => {
|
|
cy.get('[title="نمایش استفاده"]').first().click();
|
|
|
|
cy.get(".modal").should("be.visible");
|
|
cy.contains("نقشهای دارای این دسترسی").should("be.visible");
|
|
});
|
|
});
|
|
|
|
describe("Role-Permission Assignment", () => {
|
|
it("should assign multiple permissions to role", () => {
|
|
cy.visit("/roles");
|
|
cy.get('[title="مدیریت دسترسیها"]').first().click();
|
|
|
|
// Select multiple permissions
|
|
cy.get('input[type="checkbox"]').check(["1", "2", "3"]);
|
|
cy.get("button").contains("ذخیره تغییرات").click();
|
|
|
|
cy.contains("دسترسیها با موفقیت بهروزرسانی شد").should("be.visible");
|
|
});
|
|
|
|
it("should remove permission from role", () => {
|
|
cy.visit("/roles");
|
|
cy.get('[title="مدیریت دسترسیها"]').first().click();
|
|
|
|
// Uncheck permission
|
|
cy.get('input[type="checkbox"]:checked').first().uncheck();
|
|
cy.get("button").contains("ذخیره تغییرات").click();
|
|
|
|
cy.contains("دسترسیها با موفقیت بهروزرسانی شد").should("be.visible");
|
|
});
|
|
|
|
it("should show permission hierarchy", () => {
|
|
cy.visit("/roles");
|
|
cy.get('[title="مدیریت دسترسیها"]').first().click();
|
|
|
|
// Should show permissions grouped by category
|
|
cy.contains("کاربران").should("be.visible");
|
|
cy.contains("محصولات").should("be.visible");
|
|
cy.contains("سیستم").should("be.visible");
|
|
});
|
|
});
|
|
});
|