Files
ftb-project-management/apps/server/src/modules/v22-query/v22-query.controller.spec.ts
2026-07-03 11:53:25 +08:00

46 lines
1.5 KiB
TypeScript

import { V22QueryController } from './v22-query.controller';
describe('V22QueryController', () => {
it('forwards V2.2 hot-path requests to the query service', async () => {
const service = {
getVersionDetailData: jest.fn().mockResolvedValue({ version: { id: 'version-1' } }),
listRequirements: jest.fn().mockResolvedValue({ items: [], nextCursor: undefined }),
getWorkspaceData: jest.fn().mockResolvedValue({ devTasks: [] }),
getXiaobaoWarnings: jest.fn().mockResolvedValue([]),
};
const controller = new V22QueryController(service as any);
await controller.getVersionDetailData('version-1');
await controller.listRequirements(
'product-1',
'project-1',
undefined,
'adopted',
'P1',
'feature',
'login',
'created_at_asc',
'req-2',
'50',
);
await controller.getWorkspaceData('member-1');
await controller.getXiaobaoWarnings('member-1', 'false');
expect(service.getVersionDetailData).toHaveBeenCalledWith('version-1');
expect(service.listRequirements).toHaveBeenCalledWith({
productId: 'product-1',
projectId: 'project-1',
versionId: undefined,
status: 'adopted',
priority: 'P1',
type: 'feature',
q: 'login',
sort: 'created_at_asc',
cursor: 'req-2',
limit: '50',
});
expect(service.getWorkspaceData).toHaveBeenCalledWith('member-1');
expect(service.getXiaobaoWarnings).toHaveBeenCalledWith({ userId: 'member-1', manager: 'false' });
});
});