permissions.constants.test.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { describe, it, expect } from 'vitest';
  2. import {
  3. PERMISSION_ADVERTISEMENT_VIEW,
  4. PERMISSION_ADVERTISEMENT_CREATE,
  5. PERMISSION_ADVERTISEMENT_EDIT,
  6. PERMISSION_ADVERTISEMENT_DELETE,
  7. PERMISSION_ADVERTISEMENT_MANAGE,
  8. PERMISSIONS,
  9. ALL_PERMISSIONS,
  10. Permission
  11. } from '../../src/constants/permissions.constants';
  12. import {
  13. ROLE_SUPER_ADMIN,
  14. ROLE_ADMIN,
  15. ROLES,
  16. DEFAULT_ROLE_PERMISSIONS,
  17. RoleName
  18. } from '../../src/constants/roles.constants';
  19. describe('Permission Constants', () => {
  20. it('should have correct advertisement permission constants', () => {
  21. expect(PERMISSION_ADVERTISEMENT_VIEW).toBe('advertisement:view');
  22. expect(PERMISSION_ADVERTISEMENT_CREATE).toBe('advertisement:create');
  23. expect(PERMISSION_ADVERTISEMENT_EDIT).toBe('advertisement:edit');
  24. expect(PERMISSION_ADVERTISEMENT_DELETE).toBe('advertisement:delete');
  25. expect(PERMISSION_ADVERTISEMENT_MANAGE).toBe('advertisement:manage');
  26. });
  27. it('should have all permissions in PERMISSIONS object', () => {
  28. expect(PERMISSIONS.ADVERTISEMENT_VIEW).toBe('advertisement:view');
  29. expect(PERMISSIONS.ADVERTISEMENT_CREATE).toBe('advertisement:create');
  30. expect(PERMISSIONS.ADVERTISEMENT_EDIT).toBe('advertisement:edit');
  31. expect(PERMISSIONS.ADVERTISEMENT_DELETE).toBe('advertisement:delete');
  32. expect(PERMISSIONS.ADVERTISEMENT_MANAGE).toBe('advertisement:manage');
  33. });
  34. it('should have all permissions in ALL_PERMISSIONS array', () => {
  35. expect(ALL_PERMISSIONS).toHaveLength(5);
  36. expect(ALL_PERMISSIONS).toContain('advertisement:view');
  37. expect(ALL_PERMISSIONS).toContain('advertisement:create');
  38. expect(ALL_PERMISSIONS).toContain('advertisement:edit');
  39. expect(ALL_PERMISSIONS).toContain('advertisement:delete');
  40. expect(ALL_PERMISSIONS).toContain('advertisement:manage');
  41. });
  42. it('should have Permission type', () => {
  43. const permission: Permission = 'advertisement:view';
  44. expect(permission).toBe('advertisement:view');
  45. });
  46. });
  47. describe('Role Constants', () => {
  48. it('should have correct role constants', () => {
  49. expect(ROLE_SUPER_ADMIN).toBe('super-admin');
  50. expect(ROLE_ADMIN).toBe('admin');
  51. });
  52. it('should have all roles in ROLES object', () => {
  53. expect(ROLES.SUPER_ADMIN).toBe('super-admin');
  54. expect(ROLES.ADMIN).toBe('admin');
  55. });
  56. it('should have correct default role permissions', () => {
  57. expect(DEFAULT_ROLE_PERMISSIONS[ROLE_SUPER_ADMIN]).toEqual(['advertisement:manage']);
  58. expect(DEFAULT_ROLE_PERMISSIONS[ROLE_ADMIN]).toEqual([]);
  59. });
  60. it('should have RoleName type', () => {
  61. const superAdmin: RoleName = 'super-admin';
  62. const admin: RoleName = 'admin';
  63. expect(superAdmin).toBe('super-admin');
  64. expect(admin).toBe('admin');
  65. });
  66. });