reducers.test.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { ActionTypes, Action } from './actions';
  2. import { alertRulesReducer, initialState } from './reducers';
  3. import { AlertRuleDTO } from 'app/types';
  4. describe('Alert rules', () => {
  5. const payload: AlertRuleDTO[] = [
  6. {
  7. id: 2,
  8. dashboardId: 7,
  9. dashboardUid: 'ggHbN42mk',
  10. dashboardSlug: 'alerting-with-testdata',
  11. panelId: 4,
  12. name: 'TestData - Always Alerting',
  13. state: 'alerting',
  14. newStateDate: '2018-09-04T10:00:30+02:00',
  15. evalDate: '0001-01-01T00:00:00Z',
  16. evalData: { evalMatches: [{ metric: 'A-series', tags: null, value: 215 }] },
  17. executionError: '',
  18. url: '/d/ggHbN42mk/alerting-with-testdata',
  19. },
  20. {
  21. id: 1,
  22. dashboardId: 7,
  23. dashboardUid: 'ggHbN42mk',
  24. dashboardSlug: 'alerting-with-testdata',
  25. panelId: 3,
  26. name: 'TestData - Always OK',
  27. state: 'ok',
  28. newStateDate: '2018-09-04T10:01:01+02:00',
  29. evalDate: '0001-01-01T00:00:00Z',
  30. evalData: {},
  31. executionError: '',
  32. url: '/d/ggHbN42mk/alerting-with-testdata',
  33. },
  34. {
  35. id: 3,
  36. dashboardId: 7,
  37. dashboardUid: 'ggHbN42mk',
  38. dashboardSlug: 'alerting-with-testdata',
  39. panelId: 3,
  40. name: 'TestData - ok',
  41. state: 'ok',
  42. newStateDate: '2018-09-04T10:01:01+02:00',
  43. evalDate: '0001-01-01T00:00:00Z',
  44. evalData: {},
  45. executionError: 'error',
  46. url: '/d/ggHbN42mk/alerting-with-testdata',
  47. },
  48. {
  49. id: 4,
  50. dashboardId: 7,
  51. dashboardUid: 'ggHbN42mk',
  52. dashboardSlug: 'alerting-with-testdata',
  53. panelId: 3,
  54. name: 'TestData - Paused',
  55. state: 'paused',
  56. newStateDate: '2018-09-04T10:01:01+02:00',
  57. evalDate: '0001-01-01T00:00:00Z',
  58. evalData: {},
  59. executionError: 'error',
  60. url: '/d/ggHbN42mk/alerting-with-testdata',
  61. },
  62. {
  63. id: 5,
  64. dashboardId: 7,
  65. dashboardUid: 'ggHbN42mk',
  66. dashboardSlug: 'alerting-with-testdata',
  67. panelId: 3,
  68. name: 'TestData - Ok',
  69. state: 'ok',
  70. newStateDate: '2018-09-04T10:01:01+02:00',
  71. evalDate: '0001-01-01T00:00:00Z',
  72. evalData: {
  73. noData: true,
  74. },
  75. executionError: 'error',
  76. url: '/d/ggHbN42mk/alerting-with-testdata',
  77. },
  78. ];
  79. it('should set alert rules', () => {
  80. const action: Action = {
  81. type: ActionTypes.LoadedAlertRules,
  82. payload: payload,
  83. };
  84. const result = alertRulesReducer(initialState, action);
  85. expect(result.items).toEqual(payload);
  86. });
  87. });