graph_ctrl.jest.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import moment from 'moment';
  2. import { GraphCtrl } from '../module';
  3. jest.mock('../graph', () => ({}));
  4. describe('GraphCtrl', () => {
  5. let injector = {
  6. get: () => {
  7. return {
  8. timeRange: () => {
  9. return {
  10. from: '',
  11. to: '',
  12. };
  13. },
  14. };
  15. },
  16. };
  17. let scope = {
  18. $on: () => {},
  19. };
  20. GraphCtrl.prototype.panel = {
  21. events: {
  22. on: () => {},
  23. },
  24. gridPos: {
  25. w: 100,
  26. },
  27. };
  28. let ctx = <any>{};
  29. beforeEach(() => {
  30. ctx.ctrl = new GraphCtrl(scope, injector, {});
  31. ctx.ctrl.annotationsPromise = Promise.resolve({});
  32. ctx.ctrl.updateTimeRange();
  33. });
  34. describe('when time series are outside range', () => {
  35. beforeEach(() => {
  36. var data = [
  37. {
  38. target: 'test.cpu1',
  39. datapoints: [[45, 1234567890], [60, 1234567899]],
  40. },
  41. ];
  42. ctx.ctrl.range = { from: moment().valueOf(), to: moment().valueOf() };
  43. ctx.ctrl.onDataReceived(data);
  44. });
  45. it('should set datapointsOutside', () => {
  46. expect(ctx.ctrl.dataWarning.title).toBe('Data points outside time range');
  47. });
  48. });
  49. describe('when time series are inside range', () => {
  50. beforeEach(() => {
  51. var range = {
  52. from: moment()
  53. .subtract(1, 'days')
  54. .valueOf(),
  55. to: moment().valueOf(),
  56. };
  57. var data = [
  58. {
  59. target: 'test.cpu1',
  60. datapoints: [[45, range.from + 1000], [60, range.from + 10000]],
  61. },
  62. ];
  63. ctx.ctrl.range = range;
  64. ctx.ctrl.onDataReceived(data);
  65. });
  66. it('should set datapointsOutside', () => {
  67. expect(ctx.ctrl.dataWarning).toBe(null);
  68. });
  69. });
  70. describe('datapointsCount given 2 series', () => {
  71. beforeEach(() => {
  72. var data = [{ target: 'test.cpu1', datapoints: [] }, { target: 'test.cpu2', datapoints: [] }];
  73. ctx.ctrl.onDataReceived(data);
  74. });
  75. it('should set datapointsCount warning', () => {
  76. expect(ctx.ctrl.dataWarning.title).toBe('No data points');
  77. });
  78. });
  79. });