|
|
@@ -0,0 +1,33 @@
|
|
|
+import { describe, test, it, expect } from 'vitest'
|
|
|
+import {MongoAbility} from "@casl/ability/dist/types/Ability";
|
|
|
+import {AbilitiesType, AccessProfile, organizationState} from "~/types/interfaces";
|
|
|
+import AbilityBuilder from "~/services/rights/abilityBuilder";
|
|
|
+
|
|
|
+let ability: MongoAbility
|
|
|
+let accessProfile: AccessProfile
|
|
|
+let organizationProfile: organizationState
|
|
|
+let abilityBuilder: AbilityBuilder
|
|
|
+
|
|
|
+beforeEach(() => {
|
|
|
+ ability = vi.fn() as any as MongoAbility
|
|
|
+ accessProfile = vi.fn() as any as AccessProfile
|
|
|
+ organizationProfile = vi.fn() as any as organizationState
|
|
|
+
|
|
|
+ abilityBuilder = new AbilityBuilder(ability, accessProfile, organizationProfile)
|
|
|
+})
|
|
|
+
|
|
|
+describe('setupAbilities', () => {
|
|
|
+ test('base call', () => {
|
|
|
+ // @ts-ignore
|
|
|
+ ability.update = vi.fn((abilities: Array<AbilitiesType>) => {})
|
|
|
+ // @ts-ignore
|
|
|
+ organizationProfile.$onAction = vi.fn((params: any) => {})
|
|
|
+
|
|
|
+ abilityBuilder.setupAbilities()
|
|
|
+
|
|
|
+ expect(ability.update).toHaveBeenCalledTimes(1)
|
|
|
+ // @ts-ignore
|
|
|
+ expect(organizationProfile.$onAction).toHaveBeenCalledTimes(1)
|
|
|
+ })
|
|
|
+})
|
|
|
+
|