import assert from 'node:assert/strict'; import { test } from 'node:test'; import { parseCbrCny } from '../src/exchange-rate-sync.ts'; const xml = (nominal, value) => `CNY${nominal}${value}`; test('CBR 按面额做精确十进制换算', () => { assert.deepEqual(parseCbrCny(xml(10, '123,4567')), { effectiveOn: '2026-09-28', rate: '12.3456700000', }); assert.equal(parseCbrCny(xml(3, '1,0000')).rate, '0.3333333333'); }); test('缺失货币、非法日期和零面额不能覆盖有效汇率', () => { assert.throws(() => parseCbrCny('')); assert.throws(() => parseCbrCny(xml(0, '12,3'))); assert.throws(() => parseCbrCny(xml(1, '12,3').replace('28.09', '32.09'))); });