jspurefix
Version:
pure node js fix engine
111 lines • 5.38 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const encoder_test_1 = require("../env/encoder-test");
const quickfix_1 = require("../../types/FIX.5.0SP2/quickfix");
const types_1 = require("../../types");
const helper_fn_tst_1 = require("../env/helper-fn.tst");
const encoderTester = new encoder_test_1.EncoderTest();
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
yield encoderTester.init('session/test-qf50sp2-initiator.json');
}), 45000);
test('expect a definition ', () => {
expect(encoderTester.nos).toBeTruthy();
});
function getInstrument() {
return {
Symbol: 'EUR=,',
SymbolSfx: 'non',
SecurityID: 'Pellentesque',
SecurityIDSource: quickfix_1.SecurityIDSource.ExchangeSymbol,
Product: 2,
StreamGrp: {
NoStreams: [
{
StreamCurrency: 'EUR=',
PaymentStream: {
PaymentStreamFlatRateIndicator: false,
PaymentStreamFloatingRate: {
PaymentStreamRateIndex: '.IND1',
ReturnRateGrp: {
NoReturnRates: [
{
ReturnRateQuoteMethod: 0,
ReturnRatePriceGrp: {
NoReturnRatePrices: [
{
ReturnRatePrice: 100.0,
ReturnRatePriceBasis: 2,
ReturnRatePriceCurrency: 'EUR=',
ReturnRatePriceType: quickfix_1.ReturnRatePriceType.PercentageOfNotional
}
]
}
}
]
}
}
}
},
{
StreamCurrency: 'GBP=',
PaymentStream: {
PaymentStreamFlatRateIndicator: false,
PaymentStreamFloatingRate: {
PaymentStreamRateIndex: '.IND2',
ReturnRateGrp: {
NoReturnRates: [
{
ReturnRateQuoteMethod: 0,
ReturnRatePriceGrp: {
NoReturnRatePrices: [
{
ReturnRatePrice: 120.0,
ReturnRatePriceBasis: 1,
ReturnRatePriceCurrency: 'GBP=',
ReturnRatePriceType: quickfix_1.ReturnRatePriceType.PercentageOfNotional
}
]
}
}
]
}
}
}
}
]
}
};
}
function getExecReport() {
return {
OrderID: 'o1',
ExecID: 'o1-e1',
ExecType: quickfix_1.ExecType.New,
Side: quickfix_1.Side.Buy,
OrdStatus: quickfix_1.OrdStatus.New,
LeavesQty: 1000,
CumQty: 0,
Instrument: getInstrument()
};
}
test('encode exec report', () => {
expect(encoderTester.er).toBeTruthy();
const e = getExecReport();
expect(encoderTester.toFix(e, encoderTester.er)).toEqual('37=o1|17=o1-e1|150=0|39=0|55=EUR=,|65=non|48=Pellentesque|22=8|460=2|40049=2|40055=EUR=|41180=N|40789=.IND1|42735=1|42765=1|42766=2|42767=100|42768=EUR=|42769=1|42745=0|40055=GBP=|41180=N|40789=.IND2|42735=1|42765=1|42766=1|42767=120|42768=GBP=|42769=1|42745=0|54=1|151=1000|14=0|');
});
test('test exec report inc snapshot JSON => object => fix => object', () => __awaiter(void 0, void 0, void 0, function* () {
const msg = getExecReport();
const msgType = types_1.MsgType.ExecutionReport;
yield expect((0, helper_fn_tst_1.testEncodeDecode)(encoderTester.session.config, msgType, msg)).resolves.toEqual(msg);
}), 1000);
//# sourceMappingURL=qf-50sp2-encoder.test.js.map