38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { ForbiddenException } from '@nestjs/common';
|
|
import { assertStepPermission, permittedStepKeys } from './imports.access';
|
|
|
|
describe('permittedStepKeys', () => {
|
|
it('超级管理员拥有全部导入阶段', () => {
|
|
expect(
|
|
permittedStepKeys({ id: 1, permissions: [], isSuperAdmin: true }),
|
|
).toEqual(['students', 'rooms', 'checkins', 'transfers']);
|
|
});
|
|
|
|
it('按细分权限计算可提交阶段', () => {
|
|
expect(
|
|
permittedStepKeys({
|
|
id: 1,
|
|
permissions: ['student:import', 'room:edit', 'occupancy:checkin'],
|
|
isSuperAdmin: false,
|
|
}),
|
|
).toEqual(['students', 'rooms', 'checkins']);
|
|
});
|
|
|
|
it('无导入权限时仅返回空数组', () => {
|
|
expect(
|
|
permittedStepKeys({ id: 1, permissions: ['ai:chat:use'], isSuperAdmin: false }),
|
|
).toEqual([]);
|
|
});
|
|
});
|
|
|
|
describe('assertStepPermission', () => {
|
|
it('无对应细分权限时拒绝提交', () => {
|
|
expect(() =>
|
|
assertStepPermission(
|
|
{ id: 1, permissions: ['ai:chat:use'], isSuperAdmin: false },
|
|
'transfers',
|
|
),
|
|
).toThrow(ForbiddenException);
|
|
});
|
|
});
|