averias/redis-time-series

View on GitHub
src/__tests__/unit/iterator/list.test.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Label } from "../../../entity/label";
import { List } from "../../../iterator/list";
import { Sample } from "../../../entity/sample";
import { Filter } from "../../../entity/filter";
import { FilterOperator } from "../../../enum/filterOperator";

test("label list", () => {
    const labelList: Label[] = [];
    for (let i = 1; i < 4; i++) {
        labelList.push(new Label("label" + i, i));
    }
    const flattenedLabelList = new List(labelList).flatten();
    for (let i = 1; i < 4; i++) {
        expect(flattenedLabelList.shift()).toEqual("label" + i);
        expect(flattenedLabelList.shift()).toEqual(i);
    }
    expect(flattenedLabelList.length).toBe(0);
});

test("sample list", () => {
    const sampleList: Sample[] = [];
    const date = new Date(2019, 11, 30, 19).getTime();
    for (let i = 1; i < 4; i++) {
        sampleList.push(new Sample("sample" + i, i, date + i));
    }
    const flattenedSampleList = new List(sampleList).flatten();
    for (let i = 1; i < 4; i++) {
        expect(flattenedSampleList.shift()).toEqual("sample" + i);
        expect(flattenedSampleList.shift()).toEqual(date + i);
        expect(flattenedSampleList.shift()).toEqual(i);
    }
    expect(flattenedSampleList.length).toBe(0);
});

test("filter list", () => {
    const filterList: Filter[] = [];
    for (let i = 1; i < 4; i++) {
        filterList.push(new Filter("filter" + i, FilterOperator.EQUAL, i));
    }
    const flattenedFilterList = new List(filterList).flatten();
    for (let i = 1; i < 4; i++) {
        expect(flattenedFilterList.shift()).toEqual(`filter${i}${FilterOperator.EQUAL}${i}`);
    }
    expect(flattenedFilterList.length).toBe(0);
});

test("combined list", () => {
    const label = new Label("label", 30);
    const sample = new Sample("sample", 50, 1000);
    const filter = new Filter("filter", FilterOperator.NOT_EQUAL, [1, 2]);
    const list: (Label | Sample | Filter)[] = [label, sample, filter];
    const flattenedList = new List(list).flatten();

    expect(flattenedList.shift()).toEqual("label");
    expect(flattenedList.shift()).toEqual(30);
    expect(flattenedList.shift()).toEqual("sample");
    expect(flattenedList.shift()).toEqual(1000);
    expect(flattenedList.shift()).toEqual(50);
    expect(flattenedList.shift()).toEqual(`filter${FilterOperator.NOT_EQUAL}(1,2)`);
    expect(flattenedList.length).toBe(0);
});