annotations_srv_specs.jest.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {makeRegions, dedupAnnotations} from '../events_processing';
  2. describe('Annotations', () => {
  3. describe('Annotations regions', () => {
  4. let testAnnotations: any[];
  5. beforeEach(() => {
  6. testAnnotations = [
  7. {id: 1, time: 1},
  8. {id: 2, time: 2},
  9. {id: 3, time: 3, regionId: 3},
  10. {id: 4, time: 5, regionId: 3},
  11. {id: 5, time: 4, regionId: 5},
  12. {id: 6, time: 8, regionId: 5}
  13. ];
  14. });
  15. it('should convert single region events to regions', () => {
  16. const range = {from: 0, to: 10};
  17. const expectedAnnotations = [
  18. {id: 3, regionId: 3, isRegion: true, time: 3, timeEnd: 5},
  19. {id: 5, regionId: 5, isRegion: true, time: 4, timeEnd: 8},
  20. {id: 1, time: 1},
  21. {id: 2, time: 2}
  22. ];
  23. let regions = makeRegions(testAnnotations, {range: range});
  24. expect(regions).toEqual(expectedAnnotations);
  25. });
  26. it('should cut regions to current time range', () => {
  27. const range = {from: 0, to: 8};
  28. testAnnotations = [
  29. {id: 5, time: 4, regionId: 5}
  30. ];
  31. const expectedAnnotations = [
  32. {id: 5, regionId: 5, isRegion: true, time: 4, timeEnd: 7}
  33. ];
  34. let regions = makeRegions(testAnnotations, {range: range});
  35. expect(regions).toEqual(expectedAnnotations);
  36. });
  37. });
  38. describe('Annotations deduplication', () => {
  39. it('should remove duplicated annotations', () => {
  40. const testAnnotations = [
  41. {id: 1, time: 1},
  42. {id: 2, time: 2},
  43. {id: 2, time: 2},
  44. {id: 5, time: 5},
  45. {id: 5, time: 5}
  46. ];
  47. const expectedAnnotations = [
  48. {id: 1, time: 1},
  49. {id: 2, time: 2},
  50. {id: 5, time: 5}
  51. ];
  52. let deduplicated = dedupAnnotations(testAnnotations);
  53. expect(deduplicated).toEqual(expectedAnnotations);
  54. });
  55. it('should leave non "panel-alert" event if present', () => {
  56. const testAnnotations = [
  57. {id: 1, time: 1},
  58. {id: 2, time: 2},
  59. {id: 2, time: 2, eventType: 'panel-alert'},
  60. {id: 5, time: 5},
  61. {id: 5, time: 5}
  62. ];
  63. const expectedAnnotations = [
  64. {id: 1, time: 1},
  65. {id: 2, time: 2},
  66. {id: 5, time: 5}
  67. ];
  68. let deduplicated = dedupAnnotations(testAnnotations);
  69. expect(deduplicated).toEqual(expectedAnnotations);
  70. });
  71. });
  72. });