@@ -37,8 +37,14 @@ import {
37
37
redis ,
38
38
} from '@dydxprotocol-indexer/redis' ;
39
39
import { ORDERBOOK_MID_PRICES_CACHE_KEY_PREFIX } from '@dydxprotocol-indexer/redis/build/src/caches/orderbook-mid-prices-cache' ;
40
+ import { DateTime , Settings } from 'luxon' ;
40
41
41
42
describe ( 'candleHelper' , ( ) => {
43
+ const startedAt : DateTime = helpers . calculateNormalizedCandleStartTime (
44
+ testConstants . createdDateTime ,
45
+ CandleResolution . ONE_MINUTE ,
46
+ ) ;
47
+
42
48
beforeAll ( async ( ) => {
43
49
await dbHelpers . migrate ( ) ;
44
50
await dbHelpers . clearData ( ) ;
@@ -48,13 +54,15 @@ describe('candleHelper', () => {
48
54
beforeEach ( async ( ) => {
49
55
await testMocks . seedData ( ) ;
50
56
await perpetualMarketRefresher . updatePerpetualMarkets ( ) ;
57
+ Settings . now = ( ) => startedAt . plus ( { minutes : 30 } ) . valueOf ( ) ;
51
58
} ) ;
52
59
53
60
afterEach ( async ( ) => {
54
61
await dbHelpers . clearData ( ) ;
55
62
clearCandlesMap ( ) ;
56
63
jest . clearAllMocks ( ) ;
57
64
await redis . deleteAllAsync ( redisClient ) ;
65
+ Settings . now = ( ) => new Date ( ) . valueOf ( ) ;
58
66
} ) ;
59
67
60
68
afterAll ( async ( ) => {
@@ -87,10 +95,6 @@ describe('candleHelper', () => {
87
95
orderbookMidPriceClose : undefined ,
88
96
orderbookMidPriceOpen : undefined ,
89
97
} ;
90
- const startedAt : IsoString = helpers . calculateNormalizedCandleStartTime (
91
- testConstants . createdDateTime ,
92
- CandleResolution . ONE_MINUTE ,
93
- ) . toISO ( ) ;
94
98
const previousStartedAt : IsoString = helpers . calculateNormalizedCandleStartTime (
95
99
testConstants . createdDateTime . minus ( { minutes : 1 } ) ,
96
100
CandleResolution . ONE_MINUTE ,
@@ -304,8 +308,8 @@ describe('candleHelper', () => {
304
308
'100' , // open interest
305
309
false , // block contains trades
306
310
{ // expected candle
307
- id : CandleTable . uuid ( startedAt , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
308
- startedAt,
311
+ id : CandleTable . uuid ( startedAt . toISO ( ) , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
312
+ startedAt : startedAt . toISO ( ) ,
309
313
ticker : testConstants . defaultPerpetualMarket . ticker ,
310
314
resolution : CandleResolution . ONE_MINUTE ,
311
315
low : closePrice ,
@@ -343,8 +347,8 @@ describe('candleHelper', () => {
343
347
true , // block contains trades
344
348
{ // expected candle
345
349
...defaultCandle ,
346
- id : CandleTable . uuid ( startedAt , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
347
- startedAt,
350
+ id : CandleTable . uuid ( startedAt . toISO ( ) , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
351
+ startedAt : startedAt . toISO ( ) ,
348
352
resolution : CandleResolution . ONE_MINUTE ,
349
353
startingOpenInterest : '100' ,
350
354
orderbookMidPriceClose : '1000' ,
@@ -356,7 +360,7 @@ describe('candleHelper', () => {
356
360
[
357
361
'updates empty candle' , // description
358
362
{ // initial candle
359
- startedAt,
363
+ startedAt : startedAt . toISO ( ) ,
360
364
ticker : testConstants . defaultPerpetualMarket . ticker ,
361
365
resolution : CandleResolution . ONE_MINUTE ,
362
366
low : closePrice ,
@@ -374,8 +378,8 @@ describe('candleHelper', () => {
374
378
true , // block contains trades
375
379
{ // expected candle
376
380
...defaultCandle ,
377
- id : CandleTable . uuid ( startedAt , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
378
- startedAt,
381
+ id : CandleTable . uuid ( startedAt . toISO ( ) , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
382
+ startedAt : startedAt . toISO ( ) ,
379
383
resolution : CandleResolution . ONE_MINUTE ,
380
384
startingOpenInterest : existingStartingOpenInterest ,
381
385
orderbookMidPriceClose : null ,
@@ -396,7 +400,7 @@ describe('candleHelper', () => {
396
400
[
397
401
'does not update candle when there are no trades and an existing candle' , // description
398
402
{ // initial candle
399
- startedAt,
403
+ startedAt : startedAt . toISO ( ) ,
400
404
ticker : testConstants . defaultPerpetualMarket . ticker ,
401
405
resolution : CandleResolution . ONE_MINUTE ,
402
406
low : lowPrice ,
@@ -413,8 +417,8 @@ describe('candleHelper', () => {
413
417
'100' , // open interest
414
418
false , // block contains trades
415
419
{ // expected candle
416
- id : CandleTable . uuid ( startedAt , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
417
- startedAt,
420
+ id : CandleTable . uuid ( startedAt . toISO ( ) , defaultCandle . ticker , CandleResolution . ONE_MINUTE ) ,
421
+ startedAt : startedAt . toISO ( ) ,
418
422
ticker : testConstants . defaultPerpetualMarket . ticker ,
419
423
resolution : CandleResolution . ONE_MINUTE ,
420
424
low : lowPrice ,
@@ -463,7 +467,7 @@ describe('candleHelper', () => {
463
467
464
468
if ( expectedCandle === undefined ) {
465
469
// Verify no candles in postgres and no kafka messages
466
- await verifyNoCandleInPostgres ( CandleResolution . ONE_MINUTE , startedAt ) ;
470
+ await verifyNoCandleInPostgres ( CandleResolution . ONE_MINUTE , startedAt . toISO ( ) ) ;
467
471
verifyNoCandlesKafkaMessages ( publisher , CandleResolution . ONE_MINUTE ) ;
468
472
} else {
469
473
const expectedCandles : CandleFromDatabase [ ] = [ expectedCandle ] ;
@@ -485,6 +489,15 @@ describe('candleHelper', () => {
485
489
const usdVolume : string = Big ( existingPrice ) . times ( baseTokenVolume ) . toString ( ) ;
486
490
const orderbookMidPriceClose = '7500' ;
487
491
const orderbookMidPriceOpen = '8000' ;
492
+ < < < << << HEAD
493
+ = === ===
494
+ // Set candle start time to be far in the past to ensure all candles are new
495
+ const startTime : IsoString = helpers . calculateNormalizedCandleStartTime (
496
+ testConstants . createdDateTime . minus ( { minutes : 100 } ) ,
497
+ CandleResolution . ONE_MINUTE ,
498
+ ) . toUTC ( ) . toISO ( ) ;
499
+
500
+ >>> >>> > 196 dc84f ( Improve query to find candles map . ( #2650 ) )
488
501
await Promise . all (
489
502
_ . map ( Object . values ( CandleResolution ) , ( resolution : CandleResolution ) => {
490
503
return CandleTable . create ( {
0 commit comments