abilityBuilder.test.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { describe, test, it, expect } from 'vitest'
  2. import {MongoAbility} from "@casl/ability/dist/types/Ability";
  3. import {AbilitiesType, AccessProfile, organizationState} from "~/types/interfaces";
  4. import AbilityBuilder from "~/services/rights/abilityBuilder";
  5. let ability: MongoAbility
  6. let accessProfile: AccessProfile
  7. let organizationProfile: organizationState
  8. let abilityBuilder: AbilityBuilder
  9. beforeEach(() => {
  10. ability = vi.fn() as any as MongoAbility
  11. accessProfile = vi.fn() as any as AccessProfile
  12. organizationProfile = vi.fn() as any as organizationState
  13. abilityBuilder = new AbilityBuilder(ability, accessProfile, organizationProfile)
  14. })
  15. describe('setupAbilities', () => {
  16. test('base call', () => {
  17. // @ts-ignore
  18. ability.update = vi.fn((abilities: Array<AbilitiesType>) => {})
  19. // @ts-ignore
  20. organizationProfile.$onAction = vi.fn((params: any) => {})
  21. abilityBuilder.setupAbilities()
  22. expect(ability.update).toHaveBeenCalledTimes(1)
  23. // @ts-ignore
  24. expect(organizationProfile.$onAction).toHaveBeenCalledTimes(1)
  25. })
  26. })