laplace-api 1.4.2 → 1.4.4
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/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Client } from './client';
|
|
2
2
|
import { Region } from './collections';
|
|
3
|
+
import { AssetClass, AssetType } from './stocks';
|
|
3
4
|
|
|
4
5
|
export interface StockDividend {
|
|
5
6
|
date: Date;
|
|
@@ -55,7 +56,9 @@ export enum StockStatsKey {
|
|
|
55
56
|
|
|
56
57
|
export interface TopMover {
|
|
57
58
|
symbol: string;
|
|
58
|
-
|
|
59
|
+
change: number;
|
|
60
|
+
assetClass: AssetClass;
|
|
61
|
+
assetType: AssetType
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
export enum TopMoverDirection {
|
package/src/client/live-price.ts
CHANGED
|
@@ -41,11 +41,10 @@ function getSSELivePrice<T>(
|
|
|
41
41
|
export class LivePriceClient extends Client {
|
|
42
42
|
async getWebSocketUrl(
|
|
43
43
|
externalUserId: string,
|
|
44
|
-
region: Region,
|
|
45
44
|
feeds: LivePriceFeed[]
|
|
46
45
|
): Promise<string> {
|
|
47
46
|
const url = new URL(`${this["baseUrl"]}/api/v2/ws/url`);
|
|
48
|
-
url.searchParams.append("region",
|
|
47
|
+
url.searchParams.append("region", Region.Tr);
|
|
49
48
|
|
|
50
49
|
const params: WebSocketUrlParams = {
|
|
51
50
|
externalUserId,
|
|
@@ -56,8 +56,38 @@ describe('FinancialFundamentals', () => {
|
|
|
56
56
|
expect(currentStockStats.lowerPriceLimit).toBeGreaterThan(0.0)
|
|
57
57
|
});
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
59
|
+
describe('GetTopMovers', () => {
|
|
60
|
+
const region = Region.Tr;
|
|
61
|
+
const page = 0;
|
|
62
|
+
const pageSize = 20;
|
|
63
|
+
|
|
64
|
+
async function testTopMovers(direction: TopMoverDirection, shouldBePositive: boolean) {
|
|
65
|
+
const result = await stockClient.getTopMovers(region, page, pageSize, direction);
|
|
66
|
+
|
|
67
|
+
expect(Array.isArray(result)).toBe(true);
|
|
68
|
+
expect(result.length).toBeGreaterThan(0);
|
|
69
|
+
|
|
70
|
+
result.forEach(mover => {
|
|
71
|
+
expect(mover).toHaveProperty('symbol');
|
|
72
|
+
expect(mover).toHaveProperty('change');
|
|
73
|
+
expect(typeof mover.symbol).toBe('string');
|
|
74
|
+
expect(typeof mover.change).toBe('number');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const directionCheck = result.every(mover =>
|
|
78
|
+
shouldBePositive ? mover.change > 0 : mover.change < 0
|
|
79
|
+
);
|
|
80
|
+
expect(directionCheck).toBe(true);
|
|
81
|
+
|
|
82
|
+
expect(result.length).toBeLessThanOrEqual(pageSize);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
test('should return gainers data', async () => {
|
|
86
|
+
await testTopMovers(TopMoverDirection.Gainers, true);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
test('should return losers data', async () => {
|
|
90
|
+
await testTopMovers(TopMoverDirection.Losers, false);
|
|
91
|
+
});
|
|
62
92
|
});
|
|
63
93
|
});
|
|
@@ -30,7 +30,7 @@ describe("LivePrice", () => {
|
|
|
30
30
|
} as unknown as Logger;
|
|
31
31
|
|
|
32
32
|
livePriceUrlClient = new LivePriceClient(config, logger);
|
|
33
|
-
url = await livePriceUrlClient.getWebSocketUrl("2459",
|
|
33
|
+
url = await livePriceUrlClient.getWebSocketUrl("2459", [
|
|
34
34
|
LivePriceFeed.LiveBist,
|
|
35
35
|
]);
|
|
36
36
|
|
package/src/utilities/test.env
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
BASE_URL=
|
|
2
|
-
API_KEY=
|
|
1
|
+
BASE_URL=https://api.finfree.app
|
|
2
|
+
API_KEY=api-6fa6cefb-16df-4a19-8351-54f83c6bbe2f
|