69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
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('| 开户行 | 郑州支行 |');
|
|
});
|
|
});
|