Skip to content
This repository was archived by the owner on Jul 17, 2021. It is now read-only.

Commit 60197fd

Browse files
committed
Add Tests for Utils and clean-up
1 parent 8a23764 commit 60197fd

7 files changed

Lines changed: 31 additions & 27 deletions

File tree

src/__test__/utils.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { Utils } from '../utils';
2+
3+
describe('Utils', () => {
4+
it('should candlestickName format as expected', () => {
5+
const candlestickName1 = Utils.candlestickName('binance', 'btc-/_bnb', 60);
6+
const candlestickName2 = Utils.candlestickName('binance', 'btc-/_bnb', '1m');
7+
8+
expect(candlestickName1).toBe('binance_btcbnb_1m');
9+
expect(candlestickName2).toBe('binance_btcbnb_1m');
10+
});
11+
});

src/emitter/events/candlestick_emitter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { logger } from '../../logger';
2-
import { util } from '../../utils';
2+
import { Utils } from '../../utils';
33
import { Emitter } from '../emitter';
44

55
import { DBQueries } from '../../database/queries';
@@ -24,7 +24,7 @@ class CandlestickEmitter {
2424
try {
2525
// Final candles are saved into separated tables
2626
if (candle.isFinal === true) {
27-
const tableName = util.candlestickName(exchange, candle.symbol, interval);
27+
const tableName = Utils.candlestickName(exchange, candle.symbol, interval);
2828

2929
this.updateWS(tableName, candle);
3030
}

src/emitter/events/orderbook_emitter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { OrderBookStore } from 'orderbook-synchronizer';
22
import { Order, OrderbookData } from 'orderbook-synchronizer/lib/types';
33
import { EMITTER_EVENTS } from '../../constants';
44
import { logger } from '../../logger';
5-
import { util } from '../../utils';
5+
import { Utils } from '../../utils';
66
import { Emitter } from '../emitter';
77

88
import { TradepairQueries } from '../../tradepairs/tradepairs';
@@ -57,7 +57,7 @@ class OrderbookEmitter {
5757
} else {
5858
// Load Orderbook from Redis
5959
try {
60-
const tableName = util.orderbookName(exchange, symbol);
60+
const tableName = Utils.orderbookName(exchange, symbol);
6161
const orderbookSnapshot = await Redis.get(tableName);
6262

6363
if (orderbookSnapshot !== null) {
@@ -94,7 +94,7 @@ class OrderbookEmitter {
9494
const ccxtSymbol = await TradepairQueries.idToSymbol(exchange, symbol);
9595

9696
if (ccxtSymbol) {
97-
const tableName = util.orderbookName(exchange, ccxtSymbol);
97+
const tableName = Utils.orderbookName(exchange, ccxtSymbol);
9898

9999
if (!(await DBQueries.tableCheck(tableName))) {
100100
await DBQueries.createNewTableFromTemplate(TableTemplates.Orderbook, tableName);

src/emitter/events/trades_emitter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { util } from '../../utils';
1+
import { Utils } from '../../utils';
22
import { logger } from '../../logger';
33
import { Emitter } from '../emitter';
44

@@ -21,7 +21,7 @@ class TradesEmitter {
2121
const ccxtSymbol = await TradepairQueries.idToSymbol(exchange, trade.symbol);
2222

2323
if (ccxtSymbol) {
24-
const tableName = util.tradesName(exchange, ccxtSymbol);
24+
const tableName = Utils.tradesName(exchange, ccxtSymbol);
2525

2626
// Use Set for Table name check cache
2727
if (tableNameCache.has(tableName)) {

src/tradepairs/candlestick_history.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { RowDataPacket } from 'mysql2';
66
import { CCXT_API } from '../exchange/ccxt_controller';
77
import { logger } from '../logger';
88

9-
import { util } from '../utils';
9+
import { Utils } from '../utils';
1010
import { DBQueries } from '../database/queries';
1111
import { TicksOHLCV } from '../types/types';
1212
import { TableTemplates } from '../database/queries/enums';
@@ -31,8 +31,8 @@ class Candlestick {
3131
this.symbol = symbol;
3232
this.historyLimit = historyLimit;
3333
this.interval = baseInterval;
34-
this.intervalString = util.intervalToString(this.interval);
35-
this.tableName = util.candlestickName(exchange, symbol, this.interval);
34+
this.intervalString = Utils.intervalToString(this.interval);
35+
this.tableName = Utils.candlestickName(exchange, symbol, this.interval);
3636

3737
this.historyData = [];
3838
// Check Table and Data integrity
@@ -49,7 +49,7 @@ class Candlestick {
4949

5050
const candleData = await DBQueries.candlestickSelectAll(this.tableName);
5151

52-
const integrityCheck = util.candlestickDataIntegrityCheck(candleData as RowDataPacket[][], this.interval);
52+
const integrityCheck = Utils.candlestickDataIntegrityCheck(candleData as RowDataPacket[][], this.interval);
5353

5454
if (Array.isArray(integrityCheck)) {
5555
logger.verbose(

src/utils/index.ts

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export const util = {
1+
export const Utils = {
22
// Intervals: 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M
33
intervalToNumber: (string: string): number => {
44
let number = 0;
@@ -90,8 +90,8 @@ export const util = {
9090
},
9191

9292
// eslint-disable-next-line @typescript-eslint/no-explicit-any
93-
candlestickDataIntegrityCheck: (data: any[], invertval: number): boolean | any[] => {
94-
const intervalInMsec = invertval * 1000; // millisec
93+
candlestickDataIntegrityCheck: (data: any[], interval: number): boolean | any[] => {
94+
const intervalInMsec = interval * 1000; // millisec
9595
if (data.length === 0) return false;
9696

9797
const outages = [];
@@ -110,29 +110,22 @@ export const util = {
110110
tradesName: (exchange: string, symbol: string): string => {
111111
const cleanSymbol = symbol.replace('/', '').replace('-', '').replace('_', '');
112112

113-
const name = `${exchange}_${cleanSymbol}_trades`;
114-
115-
// Lowercase only
116-
return name.toLowerCase();
113+
return `${exchange}_${cleanSymbol}_trades`.toLowerCase();
117114
},
118115

119116
orderbookName: (exchange: string, symbol: string): string => {
120117
const cleanSymbol = symbol.replace('/', '').replace('-', '').replace('_', '');
121118

122-
const name = `${exchange}_${cleanSymbol}_orderbook`;
123-
124-
// Lowercase only
125-
return name.toLowerCase();
119+
return `${exchange}_${cleanSymbol}_orderbook`.toLowerCase();
126120
},
127121

128122
candlestickName: (exchange: string, symbol: string, interval: string | number): string => {
129123
const cleanSymbol = symbol.replace('/', '').replace('-', '').replace('_', '');
130124

131125
if (typeof interval === 'number') {
132-
return `${exchange}_${cleanSymbol}_${util.intervalToString(interval)}`.toLowerCase();
126+
return `${exchange}_${cleanSymbol}_${Utils.intervalToString(interval)}`.toLowerCase();
133127
}
134128

135-
// Lowercase only
136129
return `${exchange}_${cleanSymbol}_${interval}`.toLowerCase();
137130
},
138131
};

src/workers/worker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { logger } from '../logger';
77

88
import { DBQueries } from '../database/queries';
99
import { TradepairQueries } from '../tradepairs/tradepairs';
10-
import { util } from '../utils';
10+
import { Utils } from '../utils';
1111
import { TicksOHLCV } from '../types/types';
1212
import { TableTemplates } from '../database/queries/enums';
1313

@@ -28,7 +28,7 @@ if (parentPort) {
2828
const { exchange, symbol } = tradepair;
2929

3030
// Table check
31-
const candlestickTableName = util.candlestickName(exchange, symbol, DEFAULT_CANDLE_INTERVAL);
31+
const candlestickTableName = Utils.candlestickName(exchange, symbol, DEFAULT_CANDLE_INTERVAL);
3232

3333
if (!(await DBQueries.tableCheck(candlestickTableName))) {
3434
await DBQueries.createNewTableFromTemplate(TableTemplates.Candlestick, candlestickTableName);
@@ -38,7 +38,7 @@ if (parentPort) {
3838
const lastUpdateTime = await DBQueries.candlestickLastTime(candlestickTableName);
3939

4040
// Get Trades
41-
const tradeTableName = util.tradesName(exchange, symbol);
41+
const tradeTableName = Utils.tradesName(exchange, symbol);
4242

4343
const trades = await DBQueries.tradesSelect(tradeTableName, lastUpdateTime);
4444

0 commit comments

Comments
 (0)