Files
gongxue-base/apps/server/src/rbac/rbac.teachers.spec.ts
wangziqi 393ee62168
All checks were successful
CI / check (pull_request) Successful in 2m14s
feat: add Jinshuju student sync
2026-07-22 11:41:50 +08:00

41 lines
1.2 KiB
TypeScript

import { RbacService } from './rbac.service';
describe('RbacService teacher listing', () => {
it('queries only teacher roles, excluding administrators', async () => {
const queryBuilder = {
leftJoinAndSelect: jest.fn(),
where: jest.fn(),
andWhere: jest.fn(),
getCount: jest.fn().mockResolvedValue(0),
orderBy: jest.fn(),
skip: jest.fn(),
take: jest.fn(),
getMany: jest.fn().mockResolvedValue([]),
};
for (const method of ['leftJoinAndSelect', 'where', 'andWhere', 'orderBy', 'skip', 'take'] as const) {
queryBuilder[method].mockReturnValue(queryBuilder);
}
const userRepo = { createQueryBuilder: jest.fn().mockReturnValue(queryBuilder) };
const service = new RbacService(
{} as never,
{} as never,
userRepo as never,
{} as never,
{} as never,
{} as never,
{} as never,
{} as never,
);
await service.getTeachers();
expect(queryBuilder.where).toHaveBeenCalledWith(
'(role.code IN (:...roleCodes) OR role.name IN (:...roleNames))',
{
roleCodes: ['teacher'],
roleNames: ['任课老师', '老师'],
},
);
});
});