roles.test.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /* @vitest-environment node */
  2. import { describe, it, expect } from "vitest";
  3. import { ROLES, isAdminLike, canManageUsers } from "./roles.js";
  4. describe("lib/frontend/auth/roles", () => {
  5. describe("isAdminLike", () => {
  6. it("returns true for admin, superadmin, dev", () => {
  7. expect(isAdminLike(ROLES.ADMIN)).toBe(true);
  8. expect(isAdminLike(ROLES.SUPERADMIN)).toBe(true);
  9. expect(isAdminLike(ROLES.DEV)).toBe(true);
  10. });
  11. it("returns false for branch and unknown roles", () => {
  12. expect(isAdminLike(ROLES.BRANCH)).toBe(false);
  13. expect(isAdminLike("user")).toBe(false);
  14. expect(isAdminLike(null)).toBe(false);
  15. expect(isAdminLike(undefined)).toBe(false);
  16. });
  17. });
  18. describe("canManageUsers", () => {
  19. it("returns true for superadmin and dev", () => {
  20. expect(canManageUsers(ROLES.SUPERADMIN)).toBe(true);
  21. expect(canManageUsers(ROLES.DEV)).toBe(true);
  22. });
  23. it("returns false for admin, branch and unknown roles", () => {
  24. expect(canManageUsers(ROLES.ADMIN)).toBe(false);
  25. expect(canManageUsers(ROLES.BRANCH)).toBe(false);
  26. expect(canManageUsers("user")).toBe(false);
  27. expect(canManageUsers(null)).toBe(false);
  28. expect(canManageUsers(undefined)).toBe(false);
  29. });
  30. });
  31. });