@stoqey/ib 1.3.30 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api.js +2 -2
- package/dist/api/api.js.map +1 -1
- package/dist/api/contract/contractDetails.d.ts +1 -1
- package/dist/api/contract/forex.js.map +1 -1
- package/dist/api/contract/priceIncrement.d.ts +7 -0
- package/dist/api/contract/priceIncrement.js +3 -0
- package/dist/api/contract/priceIncrement.js.map +1 -0
- package/dist/api/data/enum/min-server-version.d.ts +1 -2
- package/dist/api/data/enum/min-server-version.js +0 -1
- package/dist/api/data/enum/min-server-version.js.map +1 -1
- package/dist/api/order/enum/orderType.d.ts +1 -0
- package/dist/api/order/enum/orderType.js +1 -0
- package/dist/api/order/enum/orderType.js.map +1 -1
- package/dist/api-next/api-next.d.ts +22 -2
- package/dist/api-next/api-next.js +80 -57
- package/dist/api-next/api-next.js.map +1 -1
- package/dist/api-next/common/error.d.ts +6 -5
- package/dist/api-next/common/error.js +17 -0
- package/dist/api-next/common/error.js.map +1 -1
- package/dist/api-next/index.d.ts +3 -4
- package/dist/api-next/index.js +9 -3
- package/dist/api-next/index.js.map +1 -1
- package/dist/api-next/market-scanner/market-scanner.d.ts +2 -2
- package/dist/api-next/order/open-order.d.ts +2 -2
- package/dist/common/configuration.js +22 -8
- package/dist/common/configuration.js.map +1 -1
- package/dist/common/errorCode.d.ts +9 -3
- package/dist/common/errorCode.js +26 -5
- package/dist/common/errorCode.js.map +1 -1
- package/dist/common/logger.js +20 -9
- package/dist/common/logger.js.map +1 -1
- package/dist/core/api-next/auto-connection.js +18 -8
- package/dist/core/api-next/auto-connection.js.map +1 -1
- package/dist/core/api-next/console-logger.js +17 -7
- package/dist/core/api-next/console-logger.js.map +1 -1
- package/dist/core/api-next/subscription-registry.d.ts +5 -5
- package/dist/core/api-next/subscription-registry.js +9 -9
- package/dist/core/api-next/subscription-registry.js.map +1 -1
- package/dist/core/api-next/subscription.js +5 -5
- package/dist/core/api-next/subscription.js.map +1 -1
- package/dist/core/io/controller.d.ts +1 -1
- package/dist/core/io/controller.js +3 -4
- package/dist/core/io/controller.js.map +1 -1
- package/dist/core/io/decoder.d.ts +1 -1
- package/dist/core/io/decoder.js +17 -15
- package/dist/core/io/decoder.js.map +1 -1
- package/dist/core/io/encoder.d.ts +14 -14
- package/dist/core/io/encoder.js +79 -83
- package/dist/core/io/encoder.js.map +1 -1
- package/dist/core/io/enum/in-msg-id.js.map +1 -1
- package/dist/core/io/socket.js +17 -29
- package/dist/core/io/socket.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/nodb-test-environment.js +1 -1
- package/dist/tests/nodb-test-environment.js.map +1 -1
- package/dist/tests/unit/api/historical-data.test.js +34 -42
- package/dist/tests/unit/api/historical-data.test.js.map +1 -1
- package/dist/tests/unit/api/market-scanner.test.js +19 -27
- package/dist/tests/unit/api/market-scanner.test.js.map +1 -1
- package/dist/tests/unit/api/order/cancelOrder.test.js +86 -67
- package/dist/tests/unit/api/order/cancelOrder.test.js.map +1 -1
- package/dist/tests/unit/api/pnl.test.js +12 -4
- package/dist/tests/unit/api/pnl.test.js.map +1 -1
- package/dist/tests/unit/api/positions.test.js +3 -6
- package/dist/tests/unit/api/positions.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-account-summary.test.js +1 -1
- package/dist/tests/unit/api-next/get-account-updates.test.d.ts +4 -0
- package/dist/tests/unit/api-next/get-account-updates.test.js +86 -0
- package/dist/tests/unit/api-next/get-account-updates.test.js.map +1 -0
- package/dist/tests/unit/api-next/get-historical-data.test.js +1 -1
- package/dist/tests/unit/api-next/get-historical-data.test.js.map +1 -1
- package/dist/tests/unit/api-next/next-valid-order-id.test.js +1 -1
- package/dist/tests/unit/api-next/next-valid-order-id.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-contract-details.test.js +7 -17
- package/dist/tests/unit/api-next-live/get-contract-details.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-current-time.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-current-time.test.js +64 -0
- package/dist/tests/unit/api-next-live/get-current-time.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-historical-ticks.test.js +7 -3
- package/dist/tests/unit/api-next-live/get-historical-ticks.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.js +48 -0
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.js +64 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.js +50 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/subscription-registry.test.js +11 -7
- package/dist/tests/unit/api-next-live/subscription-registry.test.js.map +1 -1
- package/dist/tools/common/ib-api-next-app.js +3 -2
- package/dist/tools/common/ib-api-next-app.js.map +1 -1
- package/package.json +14 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positions.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/positions.test.ts"],"names":[],"mappings":";;;;;AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"positions.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/positions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ describe("RxJS Wrapper: getAccountSummary()", () => {
|
|
|
30
30
|
const api = apiNext.api;
|
|
31
31
|
// testing values
|
|
32
32
|
const accountId1 = "DU123456";
|
|
33
|
-
const accountId2 = "
|
|
33
|
+
const accountId2 = "DU654321";
|
|
34
34
|
const currency = "USD";
|
|
35
35
|
const testValueReqId1 = "1111111";
|
|
36
36
|
// emit as accountSummary event and verify all subscribers receive it
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file implements tests for the [[IBApiNext.getAccountSummary]] function.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const __1 = require("../../..");
|
|
7
|
+
const contracts_1 = require("../sample-data/contracts");
|
|
8
|
+
describe("RxJS Wrapper: getAccountUpdates()", () => {
|
|
9
|
+
test("Update multicast", (done) => {
|
|
10
|
+
const apiNext = new __1.IBApiNext();
|
|
11
|
+
const api = apiNext.api;
|
|
12
|
+
// testing values
|
|
13
|
+
const accountId1 = "DU123456";
|
|
14
|
+
const accountId2 = "DU654321";
|
|
15
|
+
const currency = "USD";
|
|
16
|
+
apiNext
|
|
17
|
+
.getAccountUpdates()
|
|
18
|
+
// eslint-disable-next-line rxjs/no-ignored-subscription
|
|
19
|
+
.subscribe({
|
|
20
|
+
next: (update) => {
|
|
21
|
+
if (update.changed?.timestamp == "now") {
|
|
22
|
+
expect(update.all.value.get(accountId1)).toBeDefined();
|
|
23
|
+
expect(update.all.value.get(accountId1).get("tag").get(currency).value).toBe("value1");
|
|
24
|
+
expect(update.all.portfolio.get(accountId1)).toBeDefined();
|
|
25
|
+
expect(update.all.portfolio.get(accountId1)[0].account).toBe(accountId1);
|
|
26
|
+
expect(update.all.portfolio.get(accountId1)[0].contract.symbol).toBe(contracts_1.sample_etf.symbol);
|
|
27
|
+
expect(update.all.value.get(accountId2)).toBeDefined();
|
|
28
|
+
expect(update.all.value.get(accountId2).get("tag").get(currency).value).toBe("value2");
|
|
29
|
+
expect(update.all.portfolio.get(accountId2)).toBeDefined();
|
|
30
|
+
expect(update.all.portfolio.get(accountId2)[0].account).toBe(accountId2);
|
|
31
|
+
expect(update.all.portfolio.get(accountId2)[0].contract.symbol).toBe(contracts_1.sample_stock.symbol);
|
|
32
|
+
}
|
|
33
|
+
else if (update.changed?.timestamp == "later")
|
|
34
|
+
done();
|
|
35
|
+
},
|
|
36
|
+
error: (error) => {
|
|
37
|
+
fail(error.error.message);
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
apiNext
|
|
41
|
+
.getAccountUpdates(accountId1)
|
|
42
|
+
// eslint-disable-next-line rxjs/no-ignored-subscription
|
|
43
|
+
.subscribe({
|
|
44
|
+
next: (update) => {
|
|
45
|
+
if (update.changed?.timestamp == "now") {
|
|
46
|
+
expect(update.all.value.get(accountId1)).toBeDefined();
|
|
47
|
+
expect(update.all.value.get(accountId1).get("tag").get(currency).value).toBe("value1");
|
|
48
|
+
expect(update.all.portfolio.get(accountId1)).toBeDefined();
|
|
49
|
+
expect(update.all.portfolio.get(accountId1)[0].account).toBe(accountId1);
|
|
50
|
+
expect(update.all.portfolio.get(accountId1)[0].contract.symbol).toBe(contracts_1.sample_etf.symbol);
|
|
51
|
+
expect(update.all.value.get(accountId2)).toBeUndefined();
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
error: (error) => {
|
|
55
|
+
fail(error.error.message);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
apiNext
|
|
59
|
+
.getAccountUpdates(accountId2)
|
|
60
|
+
// eslint-disable-next-line rxjs/no-ignored-subscription
|
|
61
|
+
.subscribe({
|
|
62
|
+
next: (update) => {
|
|
63
|
+
if (update.changed?.timestamp == "now") {
|
|
64
|
+
expect(update.all.value.get(accountId1)).toBeUndefined();
|
|
65
|
+
expect(update.all.value.get(accountId2)).toBeDefined();
|
|
66
|
+
expect(update.all.value.get(accountId2).get("tag").get(currency).value).toBe("value2");
|
|
67
|
+
expect(update.all.portfolio.get(accountId2)).toBeDefined();
|
|
68
|
+
expect(update.all.portfolio.get(accountId2)[0].account).toBe(accountId2);
|
|
69
|
+
expect(update.all.portfolio.get(accountId2)[0].contract.symbol).toBe(contracts_1.sample_stock.symbol);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
error: (error) => {
|
|
73
|
+
fail(error.error.message);
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
api.emit(__1.EventName.updateAccountValue, "tag", "value1", currency, accountId1);
|
|
77
|
+
api.emit(__1.EventName.updatePortfolio, contracts_1.sample_etf, 1, 10, 100, 9, 10, 0, accountId1);
|
|
78
|
+
api.emit(__1.EventName.accountDownloadEnd, accountId1);
|
|
79
|
+
api.emit(__1.EventName.updateAccountValue, "tag", "value2", currency, accountId2);
|
|
80
|
+
api.emit(__1.EventName.updatePortfolio, contracts_1.sample_stock, 1, 10, 100, 9, 10, 0, accountId2);
|
|
81
|
+
api.emit(__1.EventName.accountDownloadEnd, accountId2);
|
|
82
|
+
api.emit(__1.EventName.updateAccountTime, "now");
|
|
83
|
+
api.emit(__1.EventName.updateAccountTime, "later");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=get-account-updates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-account-updates.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-account-updates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ describe("RxJS Wrapper: getHistoricalData()", () => {
|
|
|
78
78
|
.catch(() => {
|
|
79
79
|
done();
|
|
80
80
|
});
|
|
81
|
-
api.emit(__1.EventName.error,
|
|
81
|
+
api.emit(__1.EventName.error, new Error(), __1.ErrorCode.UNSUPPORTED_VERSION, 1);
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
//# sourceMappingURL=get-historical-data.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-historical-data.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-historical-data.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,
|
|
1
|
+
{"version":3,"file":"get-historical-data.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-historical-data.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ describe("RxJS Wrapper: getNextValidOrderId()", () => {
|
|
|
10
10
|
const apiNext = new __1.IBApiNext();
|
|
11
11
|
const api = apiNext.api;
|
|
12
12
|
// emit a EventName.nextValidId and verify RxJS result
|
|
13
|
-
const testValue = Math.random();
|
|
13
|
+
const testValue = Math.ceil(Math.random() * 10_000);
|
|
14
14
|
apiNext
|
|
15
15
|
.getNextValidOrderId()
|
|
16
16
|
.then((time) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-valid-order-id.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/next-valid-order-id.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,gCAAuE;AAEvE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,mBAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,sDAAsD;QAEtD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"next-valid-order-id.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/next-valid-order-id.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,gCAAuE;AAEvE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,mBAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,sDAAsD;QAEtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QAEpD,OAAO;aACJ,mBAAmB,EAAE;aACrB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAqB,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file implements tests for the [[IBApiNext.getContractDetails]] function.
|
|
4
4
|
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
7
11
|
const contracts_1 = require("../sample-data/contracts");
|
|
8
12
|
describe("ApiNext: getContractDetails()", () => {
|
|
9
13
|
jest.setTimeout(5_000);
|
|
@@ -15,10 +19,10 @@ describe("ApiNext: getContractDetails()", () => {
|
|
|
15
19
|
if (!error$) {
|
|
16
20
|
error$ = api.errorSubject.subscribe((error) => {
|
|
17
21
|
if (error.reqId === -1) {
|
|
18
|
-
|
|
22
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
19
23
|
}
|
|
20
24
|
else {
|
|
21
|
-
|
|
25
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
22
26
|
}
|
|
23
27
|
});
|
|
24
28
|
}
|
|
@@ -26,7 +30,7 @@ describe("ApiNext: getContractDetails()", () => {
|
|
|
26
30
|
api.connect(clientId);
|
|
27
31
|
}
|
|
28
32
|
catch (error) {
|
|
29
|
-
|
|
33
|
+
logger_1.default.error(error.message);
|
|
30
34
|
}
|
|
31
35
|
});
|
|
32
36
|
afterEach(() => {
|
|
@@ -105,19 +109,5 @@ describe("ApiNext: getContractDetails()", () => {
|
|
|
105
109
|
done(`getContractDetails failed with '${err.error.message}' (Error #${err.code})`);
|
|
106
110
|
});
|
|
107
111
|
});
|
|
108
|
-
test("Crypto contract details", (done) => {
|
|
109
|
-
const ref_contract = contracts_1.sample_crypto;
|
|
110
|
-
api
|
|
111
|
-
.getContractDetails(ref_contract)
|
|
112
|
-
.then((result) => {
|
|
113
|
-
expect(result.length).toBeGreaterThan(0);
|
|
114
|
-
expect(result[0].contract.symbol).toEqual(ref_contract.symbol);
|
|
115
|
-
expect(result[0].contract.secType).toEqual(ref_contract.secType);
|
|
116
|
-
done();
|
|
117
|
-
})
|
|
118
|
-
.catch((err) => {
|
|
119
|
-
done(`getContractDetails failed with '${err.error.message}' (Error #${err.code})`);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
112
|
});
|
|
123
113
|
//# sourceMappingURL=get-contract-details.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-contract-details.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-contract-details.test.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"get-contract-details.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-contract-details.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file implements tests for the [[IBApiNext.getCurrentTime]] function.
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
11
|
+
describe("ApiNext: getCurrentTime()", () => {
|
|
12
|
+
jest.setTimeout(5_000);
|
|
13
|
+
let clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
14
|
+
const api = new __1.IBApiNext();
|
|
15
|
+
const _error$ = api.errorSubject.subscribe((error) => {
|
|
16
|
+
if ((0, __1.isNonFatalError)(error.code, error.error)) {
|
|
17
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
api.connect(clientId++);
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
api.disconnect();
|
|
28
|
+
});
|
|
29
|
+
test("getCurrentTime once", (done) => {
|
|
30
|
+
api
|
|
31
|
+
.getCurrentTime()
|
|
32
|
+
.then((result) => {
|
|
33
|
+
// logger.info(result);
|
|
34
|
+
done();
|
|
35
|
+
})
|
|
36
|
+
.catch((err) => {
|
|
37
|
+
done(`getCurrentTime failed with '${err.error.message}' (Error #${err.code})`);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
test("getCurrentTime twice", (done) => {
|
|
41
|
+
const p1 = api.getCurrentTime();
|
|
42
|
+
const p2 = api.getCurrentTime();
|
|
43
|
+
Promise.all([p1, p2])
|
|
44
|
+
.then((result) => {
|
|
45
|
+
// logger.info(result[0], result[1]);
|
|
46
|
+
done();
|
|
47
|
+
})
|
|
48
|
+
.catch((err) => {
|
|
49
|
+
done(`getCurrentTime failed with '${err.error?.message}' (Error #${err.code})`);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
test("getCurrentTime n times", (done) => {
|
|
53
|
+
const n = 10;
|
|
54
|
+
const p = [];
|
|
55
|
+
for (let i = 0; i < n; i++)
|
|
56
|
+
p.push(api.getCurrentTime());
|
|
57
|
+
Promise.all(p).then((result) => {
|
|
58
|
+
// logger.info(result);
|
|
59
|
+
expect(result.length).toBe(n);
|
|
60
|
+
done();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=get-current-time.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-current-time.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-current-time.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file implements tests for the [[IBApiNext.getContractDetails]] function.
|
|
4
4
|
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
7
11
|
const contracts_1 = require("../sample-data/contracts");
|
|
8
12
|
describe("ApiNext: getContractDetails()", () => {
|
|
9
13
|
jest.setTimeout(10 * 1000);
|
|
@@ -15,10 +19,10 @@ describe("ApiNext: getContractDetails()", () => {
|
|
|
15
19
|
if (!error$) {
|
|
16
20
|
error$ = api.errorSubject.subscribe((error) => {
|
|
17
21
|
if (error.reqId === -1) {
|
|
18
|
-
|
|
22
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
19
23
|
}
|
|
20
24
|
else {
|
|
21
|
-
|
|
25
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
22
26
|
}
|
|
23
27
|
});
|
|
24
28
|
}
|
|
@@ -26,7 +30,7 @@ describe("ApiNext: getContractDetails()", () => {
|
|
|
26
30
|
api.connect(clientId);
|
|
27
31
|
}
|
|
28
32
|
catch (error) {
|
|
29
|
-
|
|
33
|
+
logger_1.default.error(error.message);
|
|
30
34
|
}
|
|
31
35
|
});
|
|
32
36
|
afterEach(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-historical-ticks.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-historical-ticks.test.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"get-historical-ticks.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-historical-ticks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file implements tests for the [[IBApiNext.getManagedAccounts]] function.
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
11
|
+
describe("ApiNext: getManagedAccounts()", () => {
|
|
12
|
+
jest.setTimeout(5_000);
|
|
13
|
+
let clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
14
|
+
const api = new __1.IBApiNext();
|
|
15
|
+
const _error$ = api.errorSubject.subscribe((error) => {
|
|
16
|
+
if ((0, __1.isNonFatalError)(error.code, error.error)) {
|
|
17
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
api.connect(clientId++);
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
api.disconnect();
|
|
28
|
+
});
|
|
29
|
+
test("getManagedAccounts once", (done) => {
|
|
30
|
+
api.getManagedAccounts().then((result) => {
|
|
31
|
+
expect(result.length).toBeGreaterThan(0);
|
|
32
|
+
// logger.info(result);
|
|
33
|
+
done();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
test("getManagedAccounts n times", (done) => {
|
|
37
|
+
const n = 10;
|
|
38
|
+
const p = [];
|
|
39
|
+
for (let i = 0; i < n; i++)
|
|
40
|
+
p.push(api.getManagedAccounts());
|
|
41
|
+
Promise.all(p).then((result) => {
|
|
42
|
+
// logger.info(result);
|
|
43
|
+
expect(result.length).toBe(n);
|
|
44
|
+
done();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=get-managed-accounts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-managed-accounts.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-managed-accounts.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAGH,gCAAsD;AACtD,oEAA4C;AAE5C,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IAE7E,MAAM,GAAG,GAAc,IAAI,aAAS,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACjE,IAAI,IAAA,mBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,gBAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CACV,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,KAC1C,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC1D,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzC,uBAAuB;YACvB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAwB,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,uBAAuB;YACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file implements tests for the [[IBApiNext.getMarketRule]] function.
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
11
|
+
describe("ApiNext: getMarketRule()", () => {
|
|
12
|
+
jest.setTimeout(5_000);
|
|
13
|
+
let clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
14
|
+
const api = new __1.IBApiNext();
|
|
15
|
+
const _error$ = api.errorSubject.subscribe((error) => {
|
|
16
|
+
if ((0, __1.isNonFatalError)(error.code, error.error)) {
|
|
17
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
api.connect(clientId++);
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
api.disconnect();
|
|
28
|
+
});
|
|
29
|
+
test("getMarketRule once", (done) => {
|
|
30
|
+
const p = [];
|
|
31
|
+
p.push(api.getMarketRule(26));
|
|
32
|
+
p.push(api.getMarketRule(32));
|
|
33
|
+
p.push(api.getMarketRule(67));
|
|
34
|
+
p.push(api.getMarketRule(635));
|
|
35
|
+
p.push(api.getMarketRule(2806));
|
|
36
|
+
Promise.all(p).then((result) => {
|
|
37
|
+
expect(result.length).toBe(5);
|
|
38
|
+
expect(result[0][0].lowEdge).toBe(0);
|
|
39
|
+
expect(result[0][0].increment).toBe(0.01);
|
|
40
|
+
expect(result[1][0].lowEdge).toBe(0);
|
|
41
|
+
expect(result[1][0].increment).toBe(0.01);
|
|
42
|
+
expect(result[2][0].lowEdge).toBe(0);
|
|
43
|
+
expect(result[2][0].increment).toBe(0.25);
|
|
44
|
+
expect(result[3][0].lowEdge).toBe(0);
|
|
45
|
+
expect(result[3][0].increment).toBe(0.0001);
|
|
46
|
+
expect(result[4][0].lowEdge).toBe(0);
|
|
47
|
+
expect(result[4][0].increment).toBe(0.25);
|
|
48
|
+
// logger.info(result);
|
|
49
|
+
done();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
test("getMarketRule n times", (done) => {
|
|
53
|
+
const n = 10;
|
|
54
|
+
const p = [];
|
|
55
|
+
for (let i = 0; i < n; i++)
|
|
56
|
+
p.push(api.getMarketRule(26));
|
|
57
|
+
Promise.all(p).then((result) => {
|
|
58
|
+
// logger.info(result);
|
|
59
|
+
expect(result.length).toBe(n);
|
|
60
|
+
done();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=get-market-rule.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-market-rule.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-market-rule.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file implements tests for the [[IBApiNext.getUserInfo]] function.
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const __1 = require("../../..");
|
|
10
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
11
|
+
describe("ApiNext: getManagedAccounts()", () => {
|
|
12
|
+
jest.setTimeout(5_000);
|
|
13
|
+
let clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
14
|
+
const api = new __1.IBApiNext();
|
|
15
|
+
const _error$ = api.errorSubject.subscribe((error) => {
|
|
16
|
+
if ((0, __1.isNonFatalError)(error.code, error.error)) {
|
|
17
|
+
logger_1.default.warn(`${error.error.message} (Error #${error.code})`);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
logger_1.default.error(`${error.error.message} (Error #${error.code}) ${error.advancedOrderReject ? error.advancedOrderReject : ""}`);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
api.connect(clientId++);
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
api.disconnect();
|
|
28
|
+
});
|
|
29
|
+
test("getUserInfo once", (done) => {
|
|
30
|
+
const p = [];
|
|
31
|
+
p.push(api.getUserInfo());
|
|
32
|
+
Promise.all(p).then((result) => {
|
|
33
|
+
expect(result.length).toBeGreaterThan(0);
|
|
34
|
+
// logger.info(result);
|
|
35
|
+
done();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
test("getUserInfo n times", (done) => {
|
|
39
|
+
const n = 10;
|
|
40
|
+
const p = [];
|
|
41
|
+
for (let i = 0; i < n; i++)
|
|
42
|
+
p.push(api.getUserInfo());
|
|
43
|
+
Promise.all(p).then((result) => {
|
|
44
|
+
// logger.info(result);
|
|
45
|
+
expect(result.length).toBe(n);
|
|
46
|
+
done();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=get-user-info.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-user-info.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next-live/get-user-info.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAGH,gCAAsD;AACtD,oEAA4C;AAE5C,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IAE7E,MAAM,GAAG,GAAc,IAAI,aAAS,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACjE,IAAI,IAAA,mBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,gBAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CACV,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,KAC1C,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC1D,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,CAAC,GAAsB,EAAE,CAAC;QAEhC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzC,uBAAuB;YACvB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAsB,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,uBAAuB;YACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|