transformers_specs.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import {describe, beforeEach, it, sinon, expect} from 'test/lib/common';
  2. import {TableModel} from '../table_model';
  3. describe('when transforming time series table', () => {
  4. var table;
  5. describe('given 2 time series', () => {
  6. var time = new Date().getTime();
  7. var timeSeries = [
  8. {
  9. target: 'series1',
  10. datapoints: [[12.12, time], [14.44, time+1]],
  11. },
  12. {
  13. target: 'series2',
  14. datapoints: [[16.12, time]],
  15. }
  16. ];
  17. describe('timeseries_to_rows', () => {
  18. var panel = {transform: 'timeseries_to_rows'};
  19. beforeEach(() => {
  20. table = TableModel.transform(timeSeries, panel);
  21. });
  22. it('should return 3 rows', () => {
  23. expect(table.rows.length).to.be(3);
  24. expect(table.rows[0][1]).to.be('series1');
  25. expect(table.rows[1][1]).to.be('series1');
  26. expect(table.rows[2][1]).to.be('series2');
  27. expect(table.rows[0][2]).to.be(12.12);
  28. });
  29. it('should return 3 rows', () => {
  30. expect(table.columns.length).to.be(3);
  31. expect(table.columns[0].text).to.be('Time');
  32. expect(table.columns[1].text).to.be('Series');
  33. expect(table.columns[2].text).to.be('Value');
  34. });
  35. });
  36. describe('timeseries_to_columns', () => {
  37. var panel = {
  38. transform: 'timeseries_to_columns'
  39. };
  40. beforeEach(() => {
  41. table = TableModel.transform(timeSeries, panel);
  42. });
  43. it ('should return 3 columns', () => {
  44. expect(table.columns.length).to.be(3);
  45. expect(table.columns[0].text).to.be('Time');
  46. expect(table.columns[1].text).to.be('series1');
  47. expect(table.columns[2].text).to.be('series2');
  48. });
  49. it ('should return 2 rows', () => {
  50. expect(table.rows.length).to.be(2);
  51. expect(table.rows[0][1]).to.be(12.12);
  52. expect(table.rows[0][2]).to.be(16.12);
  53. });
  54. it ('should be undefined when no value for timestamp', () => {
  55. expect(table.rows[1][2]).to.be(undefined);
  56. });
  57. });
  58. describe('JSON Data', () => {
  59. var panel = {
  60. transform: 'json',
  61. fields: [{name: 'timestamp'}, {name: 'message'}]
  62. };
  63. var rawData = [
  64. {
  65. type: 'docs',
  66. datapoints: [
  67. {
  68. timestamp: 'time',
  69. message: 'message'
  70. }
  71. ]
  72. }
  73. ];
  74. beforeEach(() => {
  75. table = TableModel.transform(rawData, panel);
  76. });
  77. it ('should return 2 columns', () => {
  78. expect(table.columns.length).to.be(2);
  79. expect(table.columns[0].text).to.be('timestamp');
  80. expect(table.columns[1].text).to.be('message');
  81. });
  82. it ('should return 2 rows', () => {
  83. expect(table.rows.length).to.be(1);
  84. expect(table.rows[0][0]).to.be('time');
  85. expect(table.rows[0][1]).to.be('message');
  86. });
  87. });
  88. });
  89. });