mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-04 19:21:51 +00:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
import type { RolePermissionAttributes } from "@/types/users";
|
|
|
|
import { getRolePermissions } from "./permissions";
|
|
|
|
const attributes = {
|
|
manage_users: false,
|
|
manage_account: false,
|
|
manage_providers: false,
|
|
manage_scans: false,
|
|
manage_integrations: false,
|
|
manage_billing: false,
|
|
manage_alerts: true,
|
|
unlimited_visibility: false,
|
|
} satisfies RolePermissionAttributes;
|
|
|
|
describe("getRolePermissions", () => {
|
|
afterEach(() => {
|
|
vi.unstubAllEnvs();
|
|
});
|
|
|
|
it("includes Manage Alerts in Prowler Cloud when role attributes provide it", () => {
|
|
// Given
|
|
vi.stubEnv("NEXT_PUBLIC_IS_CLOUD_ENV", "true");
|
|
|
|
// When
|
|
const permissions = getRolePermissions(attributes);
|
|
|
|
// Then
|
|
expect(permissions).toContainEqual({
|
|
key: "manage_alerts",
|
|
label: "Manage Alerts",
|
|
enabled: true,
|
|
});
|
|
});
|
|
|
|
it("hides Manage Alerts outside Prowler Cloud", () => {
|
|
// Given
|
|
vi.stubEnv("NEXT_PUBLIC_IS_CLOUD_ENV", "false");
|
|
|
|
// When
|
|
const permissions = getRolePermissions(attributes);
|
|
|
|
// Then
|
|
expect(
|
|
permissions.some((permission) => permission.key === "manage_alerts"),
|
|
).toBe(false);
|
|
});
|
|
});
|