Files
gongxue-base/apps/server/src/expenses/expenses.lookups.spec.ts

26 lines
1.0 KiB
TypeScript

import { ExpensesService } from './expenses.service';
describe('ExpensesService permission-scoped lookups', () => {
it('returns only minimal room and student fields needed by expense forms', async () => {
const roomRepo = {
find: jest.fn().mockResolvedValue([{ id: 1, roomNumber: '101', building: 'A' }]),
};
const studentRepo = {
find: jest.fn().mockResolvedValue([{ id: 2, name: '张三', studentNo: 'S2' }]),
};
const service = new ExpensesService(
{} as never,
{} as never,
roomRepo as never,
studentRepo as never,
);
await expect(service.getFormLookups()).resolves.toEqual({
rooms: [{ id: 1, roomNumber: '101', building: 'A' }],
students: [{ id: 2, name: '张三', studentNo: 'S2' }],
});
expect(roomRepo.find).toHaveBeenCalledWith(expect.objectContaining({ select: ['id', 'roomNumber', 'building'] }));
expect(studentRepo.find).toHaveBeenCalledWith(expect.objectContaining({ select: ['id', 'name', 'studentNo'] }));
});
});