decred.org/dcrdex@v1.0.5/server/db/driver/pg/candles_online_test.go (about) 1 //go:build pgonline 2 3 package pg 4 5 import ( 6 "testing" 7 8 "decred.org/dcrdex/dex/candles" 9 ) 10 11 func TestCandles(t *testing.T) { 12 if err := cleanTables(archie.db); err != nil { 13 t.Fatalf("cleanTables: %v", err) 14 } 15 16 var baseID, quoteID uint32 = 42, 0 17 var candleDur uint64 = 5 * 60 * 1000 18 19 lastCandle, err := archie.LastCandleEndStamp(baseID, quoteID, candleDur) 20 if err != nil { 21 t.Fatalf("Initial LastCandleEndStamp error: %v", err) 22 } 23 24 cands := []*candles.Candle{ 25 {EndStamp: candleDur}, 26 {EndStamp: candleDur * 2}, 27 } 28 29 if err = archie.InsertCandles(baseID, quoteID, candleDur, cands); err != nil { 30 t.Fatalf("InsertCandles error: %v", err) 31 } 32 33 lastCandle, err = archie.LastCandleEndStamp(baseID, quoteID, candleDur) 34 if err != nil { 35 t.Fatalf("LastCandleEndStamp error: %v", err) 36 } 37 38 if lastCandle != candleDur*2 { 39 t.Fatalf("Wrong last candle. Wanted 2, got %d", lastCandle) 40 } 41 42 // Updating is fine 43 cands[1].MatchVolume = 1 44 if err = archie.InsertCandles(baseID, quoteID, candleDur, []*candles.Candle{cands[1]}); err != nil { 45 t.Fatalf("InsertCandles (overwrite) error: %v", err) 46 } 47 48 cache := candles.NewCache(5, candleDur) 49 if err = archie.LoadEpochStats(baseID, quoteID, []*candles.Cache{cache}); err != nil { 50 t.Fatalf("LoadEpochStats error: %v", err) 51 } 52 53 if len(cache.Candles) != 2 { 54 t.Fatalf("Expected 2 candles, got %d", len(cache.Candles)) 55 } 56 57 if cache.Last().MatchVolume != 1 { 58 t.Fatalf("Overwrite failed") 59 } 60 }