import { makeRegions, dedupAnnotations } from "../events_processing"; describe("Annotations", () => { describe("Annotations regions", () => { let testAnnotations: any[]; beforeEach(() => { testAnnotations = [ { id: 1, time: 1 }, { id: 2, time: 2 }, { id: 3, time: 3, regionId: 3 }, { id: 4, time: 5, regionId: 3 }, { id: 5, time: 4, regionId: 5 }, { id: 6, time: 8, regionId: 5 } ]; }); it("should convert single region events to regions", () => { const range = { from: 0, to: 10 }; const expectedAnnotations = [ { id: 3, regionId: 3, isRegion: true, time: 3, timeEnd: 5 }, { id: 5, regionId: 5, isRegion: true, time: 4, timeEnd: 8 }, { id: 1, time: 1 }, { id: 2, time: 2 } ]; let regions = makeRegions(testAnnotations, { range: range }); expect(regions).toEqual(expectedAnnotations); }); it("should cut regions to current time range", () => { const range = { from: 0, to: 8 }; testAnnotations = [{ id: 5, time: 4, regionId: 5 }]; const expectedAnnotations = [ { id: 5, regionId: 5, isRegion: true, time: 4, timeEnd: 7 } ]; let regions = makeRegions(testAnnotations, { range: range }); expect(regions).toEqual(expectedAnnotations); }); }); describe("Annotations deduplication", () => { it("should remove duplicated annotations", () => { const testAnnotations = [ { id: 1, time: 1 }, { id: 2, time: 2 }, { id: 2, time: 2 }, { id: 5, time: 5 }, { id: 5, time: 5 } ]; const expectedAnnotations = [ { id: 1, time: 1 }, { id: 2, time: 2 }, { id: 5, time: 5 } ]; let deduplicated = dedupAnnotations(testAnnotations); expect(deduplicated).toEqual(expectedAnnotations); }); it('should leave non "panel-alert" event if present', () => { const testAnnotations = [ { id: 1, time: 1 }, { id: 2, time: 2 }, { id: 2, time: 2, eventType: "panel-alert" }, { id: 5, time: 5 }, { id: 5, time: 5 } ]; const expectedAnnotations = [ { id: 1, time: 1 }, { id: 2, time: 2 }, { id: 5, time: 5 } ]; let deduplicated = dedupAnnotations(testAnnotations); expect(deduplicated).toEqual(expectedAnnotations); }); }); });