const fs = require('fs'); const path = require('path'); const vm = require('vm'); function loadEodPositionRiskHelpers() { const filePath = path.join(__dirname, '../wwwroot/Scripts/app/swaptrade/EodPositionRisks.js'); const code = fs.readFileSync(filePath, 'utf8') + '\nmodule.exports = { TradeDirectionFormat };'; const sandbox = { module: { exports: {} }, exports: {}, $() { }, main: { numberFormat() { return function () { }; } } }; vm.runInNewContext(code, sandbox, { filename: filePath }); return sandbox.module.exports; } const { TradeDirectionFormat } = loadEodPositionRiskHelpers(); describe('互换日终持仓交易方向', () => { test.each([ [1, 1, '多头'], [1, 2, '空头'], [2, 1, '空头'], [2, 2, '多头'] ])('收支方向=%i,多空方向=%i时展示%s', (posiDirection, positionType, expected) => { const row = { eodPosition: { PosiDirection: posiDirection, PositionType: positionType } }; expect(TradeDirectionFormat(positionType, {}, row)).toBe(expected); }); test('无有效浮动端方向时不展示交易方向', () => { expect(TradeDirectionFormat(1, {}, { eodPosition: { PosiDirection: 0, PositionType: 1 } })).toBe(''); }); });