serum-history/src/test/redis_spec.ts

41 lines
1.3 KiB
TypeScript

import { RedisStore } from '../redis';
import { Tedis } from "tedis";
const DAYS = 86400000;
const YEARS = 365*DAYS;
const ts = [{id: '0', price: 1.2, size: 3.4, ts: 1234567890000},
{id: '1', price: 2.3, size: 4.5, ts: 1234567890000-0.8*DAYS},
{id: '2', price: 3.4, size: 5.6, ts: 1234567890000+1*DAYS},
{id: '3', price: 4.5, size: 6.7, ts: 1234567890000+3*DAYS}];
const s = new RedisStore({} as Tedis, 'ABC/DEF');
describe('RedisStore', () => {
it('stores trades in buckets per day', () => {
let keys = ts.map(t => s.keyForTrade(t));
expect(keys[0]).toBe('ABC/DEF-2009-1-13');
expect(keys[0]).toBe(keys[1]);
expect(keys[0]).not.toBe(keys[2]);
expect(keys[0]).not.toBe(keys[3]);
expect(keys[2]).not.toBe(keys[3]);
});
it('iterates buckets per day', () => {
let from = ts[0].ts;
let to = from + 1.2*DAYS;
let keys = s.keysForCandles(DAYS, from, to);
expect(keys).toEqual(['ABC/DEF-2009-1-13',
'ABC/DEF-2009-1-14',
'ABC/DEF-2009-1-15']);
});
it('iterates preserving order', () => {
let from = ts[0].ts;
let to = from + 1*YEARS;
let keys = s.keysForCandles(DAYS, from, to);
expect(keys[0]).toEqual('ABC/DEF-2009-1-13');
expect(keys[keys.length-1]).toEqual('ABC/DEF-2010-1-13');
});
});