averias/redis-time-series

View on GitHub
src/__tests__/unit/entity/timestampRange.test.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { CommandKeyword } from "../../../enum/commandKeyword";
import { TimestampRange } from "../../../entity/timestampRange";

test("timestamp range creation with default values", () => {
    const tsRange = new TimestampRange();
    expect(tsRange.getFrom()).toEqual(CommandKeyword.MIN_TIMESTAMP);
    expect(tsRange.getTo()).toEqual(CommandKeyword.MAX_TIMESTAMP);
    expect(tsRange.flatten()).toEqual([CommandKeyword.MIN_TIMESTAMP, CommandKeyword.MAX_TIMESTAMP]);
});

test("timestamp range creation with provided values", () => {
    const start = new Date(2019, 11, 29, 11).getTime();
    const end = start + 360000;
    const tsRange = new TimestampRange(start, end);
    expect(tsRange.getFrom()).toEqual(start);
    expect(tsRange.getTo()).toEqual(end);
    expect(tsRange.flatten()).toEqual([start, end]);
});

test("timestamp range creation with default from value", () => {
    const end = new Date(2019, 11, 29, 11).getTime() + 360000;
    const tsRange = new TimestampRange(undefined, end);
    expect(tsRange.getFrom()).toEqual(CommandKeyword.MIN_TIMESTAMP);
    expect(tsRange.getTo()).toEqual(end);
    expect(tsRange.flatten()).toEqual([CommandKeyword.MIN_TIMESTAMP, end]);
});

test("timestamp range creation with default to value", () => {
    const start = new Date(2019, 11, 29, 11).getTime();
    const tsRange = new TimestampRange(start);
    expect(tsRange.getFrom()).toEqual(start);
    expect(tsRange.getTo()).toEqual(CommandKeyword.MAX_TIMESTAMP);
    expect(tsRange.flatten()).toEqual([start, CommandKeyword.MAX_TIMESTAMP]);
});

test("timestamp range creation with invalid from value", () => {
    expect(() => {
        new TimestampRange(-1, Date.now());
    }).toThrow(/invalid timestamp/);
});

test("timestamp range creation with invalid to value", () => {
    expect(() => {
        new TimestampRange(Date.now(), -1);
    }).toThrow(/invalid timestamp/);
});