public v3 spot tests
This commit is contained in:
@@ -4,6 +4,7 @@ export * from './inverse-client';
|
|||||||
export * from './inverse-futures-client';
|
export * from './inverse-futures-client';
|
||||||
export * from './linear-client';
|
export * from './linear-client';
|
||||||
export * from './spot-client';
|
export * from './spot-client';
|
||||||
|
export * from './spot-client-v3';
|
||||||
export * from './usdc-option-client';
|
export * from './usdc-option-client';
|
||||||
export * from './usdc-perpetual-client';
|
export * from './usdc-perpetual-client';
|
||||||
export * from './websocket-client';
|
export * from './websocket-client';
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import BaseRestClient from './util/BaseRestClient';
|
|||||||
/**
|
/**
|
||||||
* REST API client for newer Spot V3 APIs.
|
* REST API client for newer Spot V3 APIs.
|
||||||
*/
|
*/
|
||||||
export class SpotV3Client extends BaseRestClient {
|
export class SpotClientV3 extends BaseRestClient {
|
||||||
getClientType() {
|
getClientType() {
|
||||||
// Follows the same authentication mechanism as other v3 APIs (e.g. USDC)
|
// Follows the same authentication mechanism as other v3 APIs (e.g. USDC)
|
||||||
return REST_CLIENT_TYPE_ENUM.v3;
|
return REST_CLIENT_TYPE_ENUM.v3;
|
||||||
@@ -46,7 +46,7 @@ export class SpotV3Client extends BaseRestClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Get merged orderbook for symbol */
|
/** Get merged orderbook for symbol */
|
||||||
getOrderBookMerged(
|
getMergedOrderBook(
|
||||||
symbol: string,
|
symbol: string,
|
||||||
scale?: number,
|
scale?: number,
|
||||||
limit?: number
|
limit?: number
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ export function successResponseObject(successMsg: string | null = 'OK') {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function successUSDCResponseObject() {
|
export function successResponseObjectV3() {
|
||||||
return {
|
return {
|
||||||
result: expect.any(Object),
|
result: expect.any(Object),
|
||||||
...successUSDCEmptyResponseObject(),
|
...successEmptyResponseObjectV3(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function successUSDCEmptyResponseObject() {
|
export function successEmptyResponseObjectV3() {
|
||||||
return {
|
return {
|
||||||
retCode: API_ERROR_CODE.SUCCESS,
|
retCode: API_ERROR_CODE.SUCCESS,
|
||||||
retMsg: expect.stringMatching(
|
retMsg: expect.stringMatching(
|
||||||
|
|||||||
74
test/spot/public.v3.test.ts
Normal file
74
test/spot/public.v3.test.ts
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import { SpotClientV3 } from '../../src';
|
||||||
|
import {
|
||||||
|
notAuthenticatedError,
|
||||||
|
successResponseList,
|
||||||
|
successResponseObject,
|
||||||
|
successResponseObjectV3,
|
||||||
|
} from '../response.util';
|
||||||
|
|
||||||
|
describe('Public Spot REST API Endpoints', () => {
|
||||||
|
const useLivenet = true;
|
||||||
|
const api = new SpotClientV3(undefined, undefined, useLivenet);
|
||||||
|
|
||||||
|
const symbol = 'BTCUSDT';
|
||||||
|
const interval = '15m';
|
||||||
|
const timestampOneHourAgo = new Date().getTime() / 1000 - 1000 * 60 * 60;
|
||||||
|
const from = Number(timestampOneHourAgo.toFixed(0));
|
||||||
|
|
||||||
|
it('should throw for unauthenticated private calls', async () => {
|
||||||
|
expect(() => api.getOpenOrders()).rejects.toMatchObject(
|
||||||
|
notAuthenticatedError()
|
||||||
|
);
|
||||||
|
expect(() => api.getBalances()).rejects.toMatchObject(
|
||||||
|
notAuthenticatedError()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getSymbols()', async () => {
|
||||||
|
expect(await api.getSymbols()).toMatchObject(successResponseObjectV3());
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getOrderBook()', async () => {
|
||||||
|
expect(await api.getOrderBook(symbol)).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getMergedOrderBook()', async () => {
|
||||||
|
expect(await api.getMergedOrderBook(symbol)).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getTrades()', async () => {
|
||||||
|
expect(await api.getTrades(symbol)).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getCandles()', async () => {
|
||||||
|
expect(await api.getCandles(symbol, interval)).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('get24hrTicker()', async () => {
|
||||||
|
expect(await api.get24hrTicker()).toMatchObject(successResponseObjectV3());
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getLastTradedPrice()', async () => {
|
||||||
|
expect(await api.getLastTradedPrice()).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getBestBidAskPrice()', async () => {
|
||||||
|
expect(await api.getBestBidAskPrice()).toMatchObject(
|
||||||
|
successResponseObjectV3()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('fetchServertime() returns number', async () => {
|
||||||
|
expect(await api.fetchServerTime()).toStrictEqual(expect.any(Number));
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user