AlertListStore.jest.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { AlertListStore } from './AlertListStore';
  2. import { backendSrv } from 'test/mocks/common';
  3. import moment from 'moment';
  4. function getRule(name, state, info) {
  5. return {
  6. id: 11,
  7. dashboardId: 58,
  8. panelId: 3,
  9. name: name,
  10. state: state,
  11. newStateDate: moment()
  12. .subtract(5, 'minutes')
  13. .format(),
  14. evalData: {},
  15. executionError: '',
  16. url: 'db/mygool',
  17. stateText: state,
  18. stateIcon: 'fa',
  19. stateClass: 'asd',
  20. stateAge: '10m',
  21. info: info,
  22. canEdit: true,
  23. };
  24. }
  25. describe('AlertListStore', () => {
  26. let store;
  27. beforeAll(() => {
  28. store = AlertListStore.create(
  29. {
  30. rules: [
  31. getRule('Europe', 'OK', 'backend-01'),
  32. getRule('Google', 'ALERTING', 'backend-02'),
  33. getRule('Amazon', 'PAUSED', 'backend-03'),
  34. getRule('West-Europe', 'PAUSED', 'backend-03'),
  35. ],
  36. search: '',
  37. },
  38. {
  39. backendSrv: backendSrv,
  40. }
  41. );
  42. });
  43. it('search should filter list on name', () => {
  44. store.setSearchQuery('urope');
  45. expect(store.filteredRules).toHaveLength(2);
  46. });
  47. it('search should filter list on state', () => {
  48. store.setSearchQuery('ale');
  49. expect(store.filteredRules).toHaveLength(1);
  50. });
  51. it('search should filter list on info', () => {
  52. store.setSearchQuery('-0');
  53. expect(store.filteredRules).toHaveLength(4);
  54. });
  55. it('search should be equal', () => {
  56. store.setSearchQuery('alert');
  57. expect(store.search).toBe('alert');
  58. });
  59. });