test(交易记录): 迭代 07/08 回归测试(独立数据目录)

- test-r009: 手动归属核心(建表/幂等/UPSERT 不覆盖归属/候选/持久化过滤)
- test-r009-sync: TradeSync 同步集成
- test-r009-normalize: QMT code 归一化
- test-r009-api: API 层端点集成
- verify-real-r009: 真实数据只读验证
- verify-real-attribution: 归属写闭环(被插件锁时跳过)
This commit is contained in:
2026-09-02 01:21:04 +08:00
parent 2790b92378
commit 859938c4f1
6 changed files with 395 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import { QmtBridgeRestDataSource } from '../src/component/QmtBridgeRestDataSource.js';
const ds = new QmtBridgeRestDataSource({ baseUrl: 'http://x' });
let pass = 0, fail = 0;
function assert(cond, msg) {
if (cond) { pass++; console.log(' ✅ ' + msg); }
else { fail++; console.log(' ❌ ' + msg); }
}
// code 归一化
assert(ds.normalizeInstrumentCode('001330', 'SZ') === '001330.SZ', '001330+SZ → 001330.SZ');
assert(ds.normalizeInstrumentCode('600519', 'SH') === '600519.SH', '600519+SH → 600519.SH');
assert(ds.normalizeInstrumentCode('001330.SZ', 'SZ') === '001330.SZ', '已带后缀原样保留');
assert(ds.normalizeInstrumentCode('601117', '') === '601117.SH', '无交易所按首位推断 6→SH');
assert(ds.normalizeInstrumentCode('000001', '') === '000001.SZ', '无交易所按首位推断 0→SZ');
assert(ds.normalizeInstrumentCode('300057', '') === '300057.SZ', '无交易所按首位推断 3→SZ');
// mapOrdertradeDate 兜底 insertDate
const o = ds.mapOrder({
m_strOrderSysID: '645009273', m_strInstrumentID: '001330', m_strInstrumentName: '博纳影业',
m_strExchangeID: 'SZ', m_nOffsetFlag: 49, m_strOptName: '限价卖出', m_nOrderStatus: 56,
m_nVolumeTotalOriginal: 200, m_nVolumeTraded: 200, m_nVolumeTotal: 200,
m_dLimitPrice: 6, m_dTradedPrice: 6, m_dTradeAmount: 1200,
m_strInsertDate: '20260901', m_strInsertTime: '101333',
});
assert(o.code === '001330.SZ', 'mapOrder code 归一化: ' + o.code);
assert(o.tradeDate === '20260901', 'mapOrder tradeDate 兜底 insertDate: ' + o.tradeDate);
assert(o.insertDate === '20260901' && o.insertTime === '101333', 'insertDate/insertTime 保留');
// mapTradecode 归一化 + tradeDate 保留原始
const t = ds.mapTrade({
m_strTradeID: '0103000030812084', m_strOrderSysID: '645009273', m_strInstrumentID: '001330',
m_strInstrumentName: '博纳影业', m_strExchangeID: 'SZ', m_nOffsetFlag: 49, m_strOptName: '限价卖出',
m_dPrice: 6, m_nVolume: 200, m_dTradeAmount: 1200, m_dCommission: 0.852,
m_strTradeDate: '20260901', m_strTradeTime: '101333',
});
assert(t.code === '001330.SZ', 'mapTrade code 归一化: ' + t.code);
assert(t.tradeDate === '20260901', 'mapTrade tradeDate 保留: ' + t.tradeDate);
console.log('\n结果: ' + pass + ' 通过, ' + fail + ' 失败');
process.exit(fail > 0 ? 1 : 0);