import { describe, expect, it } from 'vitest' import { requireReviewedProcurementFees } from './procurementOutboundFees' describe('procurement outbound fee gate', () => { const approved = { direction: 'RECEIVABLE' as const, sourceStatus: 'ACTIVE', reviewStatus: 'APPROVED' } it('requires a current receivable, excluding voided fees and payables', () => { for (const rows of [[], [{ ...approved, sourceStatus: 'VOIDED' }], [{ ...approved, direction: 'PAYABLE' as const }]]) { expect(() => requireReviewedProcurementFees(rows)).toThrow('请先添加费用明细') } }) it('requires every current fee to be active and approved', () => { for (const reviewStatus of ['PENDING', 'REJECTED']) { expect(() => requireReviewedProcurementFees([approved, { ...approved, reviewStatus }])).toThrow('尚未全部审核通过') } expect(() => requireReviewedProcurementFees([approved, { ...approved, sourceStatus: 'VOIDING' }])).toThrow('尚未全部审核通过') expect(() => requireReviewedProcurementFees([approved, { ...approved, sourceStatus: 'VOIDED', reviewStatus: 'REJECTED' }])).not.toThrow() }) })