feat(P19ERP2-3,P19ERP2-4): 新增采购ERP轨道接口与详情挂件
这个提交包含在:
@@ -0,0 +1,59 @@
|
||||
const integrationsRoutes = require('../../../src/routes/integrations');
|
||||
|
||||
describe('Integrations procurement ERP route helpers', () => {
|
||||
const {
|
||||
canReadPurchaseRequest,
|
||||
ensureProcurementTargetEligible,
|
||||
normalizeProcurementTargets,
|
||||
} = integrationsRoutes.__testables;
|
||||
|
||||
it('normalizes procurement targets in fixed order', () => {
|
||||
expect(
|
||||
normalizeProcurementTargets({
|
||||
targets: ['archive_summary', 'commitment_journal', 'archive_summary'],
|
||||
}),
|
||||
).toEqual(['commitment_journal', 'archive_summary']);
|
||||
});
|
||||
|
||||
it('respects purchase read permission rules', () => {
|
||||
const purchaseRequest = {
|
||||
applicant_id: 'employee-1',
|
||||
submitter_id: 'employee-2',
|
||||
};
|
||||
|
||||
expect(
|
||||
canReadPurchaseRequest(
|
||||
{ employee: { id: 'employee-1', permissionCodes: ['procurement.view_own'] } },
|
||||
purchaseRequest,
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
canReadPurchaseRequest(
|
||||
{ employee: { id: 'other', permissionCodes: ['procurement.view_own'] } },
|
||||
purchaseRequest,
|
||||
),
|
||||
).toBe(false);
|
||||
expect(
|
||||
canReadPurchaseRequest(
|
||||
{ employee: { id: 'other', permissionCodes: ['integration.manage', 'procurement.view_all'] } },
|
||||
purchaseRequest,
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it('rejects commitment target when purchase is not approved', () => {
|
||||
expect(() =>
|
||||
ensureProcurementTargetEligible('commitment_journal', {
|
||||
purchaseRequest: { status: 'reviewing' },
|
||||
}),
|
||||
).toThrow('参数校验失败');
|
||||
});
|
||||
|
||||
it('rejects archive targets when archive is missing', () => {
|
||||
expect(() =>
|
||||
ensureProcurementTargetEligible('accrual_journal', {
|
||||
purchaseRequest: { status: 'approved', order_archive: null },
|
||||
}),
|
||||
).toThrow('参数校验失败');
|
||||
});
|
||||
});
|
||||
在新工单中引用
屏蔽一个用户