bixi
Version:
企业级中后台前端解决方案
75 lines (65 loc) • 3.06 kB
text/typescript
import { BixiACService } from './ac.service';
describe('# @bixi/ac BixiACService', () => {
let ac: BixiACService;
beforeEach(() => {
ac = new BixiACService();
ac.setPermissions(['per_a', 'per_b']);
ac.setRoles(['role_a', 'role_b']);
});
it('# ac', () => {
expect(ac.ac([])).toBe(true);
expect(ac.ac('per_a')).toBe(true);
expect(ac.ac('per_c')).toBe(false);
expect(ac.ac(['per_a', 'per_b'])).toBe(true);
expect(ac.ac(['per_b', 'per_c'])).toBe(false);
expect(ac.ac(['per_c', 'per_d'])).toBe(false);
expect(ac.ac([], { isRole: true })).toBe(true);
expect(ac.ac('role_a', { isRole: true })).toBe(true);
expect(ac.ac('role_d', { isRole: true })).toBe(false);
expect(ac.ac(['role_a', 'role_b'], { isRole: true })).toBe(true);
expect(ac.ac(['role_b', 'role_c'], { isRole: true })).toBe(false);
expect(ac.ac(['role_c', 'role_d'], { isRole: true })).toBe(false);
});
it('# acAny', () => {
expect(ac.acAny([])).toBe(false);
expect(ac.acAny('per_a')).toBe(true);
expect(ac.acAny('per_c')).toBe(false);
expect(ac.acAny(['per_a', 'per_b'])).toBe(true);
expect(ac.acAny(['per_b', 'per_c'])).toBe(true);
expect(ac.acAny(['per_c', 'per_d'])).toBe(false);
expect(ac.acAny([], { isRole: true })).toBe(false);
expect(ac.acAny('role_a', { isRole: true })).toBe(true);
expect(ac.acAny('role_d', { isRole: true })).toBe(false);
expect(ac.acAny(['role_a', 'role_b'], { isRole: true })).toBe(true);
expect(ac.acAny(['role_b', 'role_c'], { isRole: true })).toBe(true);
expect(ac.acAny(['role_c', 'role_d'], { isRole: true })).toBe(false);
});
it('# ace', () => {
expect(ac.ace([])).toBe(true);
expect(ac.ace('per_a')).toBe(false);
expect(ac.ace('per_c')).toBe(true);
expect(ac.ace(['per_a', 'per_b'])).toBe(false);
expect(ac.ace(['per_b', 'per_c'])).toBe(false);
expect(ac.ace(['per_c', 'per_d'])).toBe(true);
expect(ac.ace([], { isRole: true })).toBe(true);
expect(ac.ace('role_a', { isRole: true })).toBe(false);
expect(ac.ace('role_d', { isRole: true })).toBe(true);
expect(ac.ace(['role_a', 'role_b'], { isRole: true })).toBe(false);
expect(ac.ace(['role_b', 'role_c'], { isRole: true })).toBe(false);
expect(ac.ace(['role_c', 'role_d'], { isRole: true })).toBe(true);
});
it('# aceAny', () => {
expect(ac.aceAny([])).toBe(false);
expect(ac.aceAny('per_a')).toBe(false);
expect(ac.aceAny('per_c')).toBe(true);
expect(ac.aceAny(['per_a', 'per_b'])).toBe(false);
expect(ac.aceAny(['per_b', 'per_c'])).toBe(true);
expect(ac.aceAny(['per_c', 'per_d'])).toBe(true);
expect(ac.aceAny([], { isRole: true })).toBe(false);
expect(ac.aceAny('role_a', { isRole: true })).toBe(false);
expect(ac.aceAny('role_d', { isRole: true })).toBe(true);
expect(ac.aceAny(['role_a', 'role_b'], { isRole: true })).toBe(false);
expect(ac.aceAny(['role_b', 'role_c'], { isRole: true })).toBe(true);
expect(ac.aceAny(['role_c', 'role_d'], { isRole: true })).toBe(true);
});
});