import { describe, expect, it } from 'vitest'; import { filterNonZeroWecomBills, formatPartnerBillWecomBlock, formatWecomKvTable, } from './wecom-bill-digest'; describe('filterNonZeroWecomBills', () => { it('drops zero-amount bills', () => { expect( filterNonZeroWecomBills([ { amount: 0, name: 'zero' }, { amount: 12.5, name: 'keep' }, { amount: 0.0, name: 'also-zero' }, ]).map((r) => r.name), ).toEqual(['keep']); }); }); describe('formatWecomKvTable', () => { it('uses the title as table header and fields as rows', () => { const md = formatWecomKvTable('郑州某某商贸-张三', [ ['账期', '2026-07-27 ~ 2026-08-02'], ['累计金额', '¥120.00'], ]); expect(md).toBe( [ '| 郑州某某商贸-张三 | |', '| :--- | ---: |', '| 账期 | 2026-07-27 ~ 2026-08-02 |', '| 累计金额 | ¥120.00 |', ].join('\n'), ); }); }); describe('formatPartnerBillWecomBlock', () => { it('renders partner company-name header and settlement fields', () => { const md = formatPartnerBillWecomBlock({ partnerLabel: '郑州某某商贸-张三', period: '2026-07-27 ~ 2026-08-02', orderCount: 8, orderAmount: 1000, orderCommission: 100, redeemCount: 12, redeemAmount: 200, redeemCommission: 20, amount: 120, bank: { bankAccountName: '张三', bankAccountNo: '6222000011112222', bankBranch: '郑州支行', }, }); expect(md).toContain('| 郑州某某商贸-张三 | |'); expect(md).toContain('| 账期 | 2026-07-27 ~ 2026-08-02 |'); expect(md).toContain('| 订单数量 | 8 |'); expect(md).toContain('| 订单金额 | ¥1000.00 |'); expect(md).toContain('| 订单佣金 | ¥100.00 |'); expect(md).toContain('| 核销单数量 | 12 |'); expect(md).toContain('| 核销金额 | ¥200.00 |'); expect(md).toContain('| 核销佣金 | ¥20.00 |'); expect(md).toContain('| 累计金额 | ¥120.00 |'); expect(md).toContain('| 收款人 | 张三 |'); expect(md).toContain('| 收款银行账号 | 6222000011112222 |'); expect(md).toContain('| 开户行 | 郑州支行 |'); }); });