file_export.jest.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import * as fileExport from '../utils/file_export';
  2. import { beforeEach, expect } from 'test/lib/common';
  3. describe('file_export', () => {
  4. let ctx: any = {};
  5. beforeEach(() => {
  6. ctx.seriesList = [
  7. {
  8. alias: 'series_1',
  9. datapoints: [
  10. [1, 1500026100000],
  11. [2, 1500026200000],
  12. [null, 1500026300000],
  13. [null, 1500026400000],
  14. [null, 1500026500000],
  15. [6, 1500026600000],
  16. ],
  17. },
  18. {
  19. alias: 'series_2',
  20. datapoints: [[11, 1500026100000], [12, 1500026200000], [13, 1500026300000], [15, 1500026500000]],
  21. },
  22. ];
  23. ctx.timeFormat = 'X'; // Unix timestamp (seconds)
  24. });
  25. describe('when exporting series as rows', () => {
  26. it('should export points in proper order', () => {
  27. let text = fileExport.convertSeriesListToCsv(ctx.seriesList, ctx.timeFormat);
  28. const expectedText =
  29. 'Series;Time;Value\n' +
  30. 'series_1;1500026100;1\n' +
  31. 'series_1;1500026200;2\n' +
  32. 'series_1;1500026300;null\n' +
  33. 'series_1;1500026400;null\n' +
  34. 'series_1;1500026500;null\n' +
  35. 'series_1;1500026600;6\n' +
  36. 'series_2;1500026100;11\n' +
  37. 'series_2;1500026200;12\n' +
  38. 'series_2;1500026300;13\n' +
  39. 'series_2;1500026500;15\n';
  40. expect(text).toBe(expectedText);
  41. });
  42. });
  43. describe('when exporting series as columns', () => {
  44. it('should export points in proper order', () => {
  45. let text = fileExport.convertSeriesListToCsvColumns(ctx.seriesList, ctx.timeFormat);
  46. const expectedText =
  47. 'Time;series_1;series_2\n' +
  48. '1500026100;1;11\n' +
  49. '1500026200;2;12\n' +
  50. '1500026300;null;13\n' +
  51. '1500026400;null;null\n' +
  52. '1500026500;null;15\n' +
  53. '1500026600;6;null\n';
  54. expect(text).toBe(expectedText);
  55. });
  56. });
  57. });