AlertListStore.jest.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. dashboardUri: 'db/mygool',
  17. stateText: state,
  18. stateIcon: 'fa',
  19. stateClass: 'asd',
  20. stateAge: '10m',
  21. info: info,
  22. };
  23. }
  24. describe('AlertListStore', () => {
  25. let store;
  26. beforeAll(() => {
  27. store = AlertListStore.create(
  28. {
  29. rules: [
  30. getRule('Europe', 'OK', 'backend-01'),
  31. getRule('Google', 'ALERTING', 'backend-02'),
  32. getRule('Amazon', 'PAUSED', 'backend-03'),
  33. getRule('West-Europe', 'PAUSED', 'backend-03'),
  34. ],
  35. search: '',
  36. },
  37. {
  38. backendSrv: backendSrv,
  39. }
  40. );
  41. });
  42. it('search should filter list on name', () => {
  43. store.setSearchQuery('urope');
  44. expect(store.filteredRules).toHaveLength(2);
  45. });
  46. it('search should filter list on state', () => {
  47. store.setSearchQuery('ale');
  48. expect(store.filteredRules).toHaveLength(1);
  49. });
  50. it('search should filter list on info', () => {
  51. store.setSearchQuery('-0');
  52. expect(store.filteredRules).toHaveLength(4);
  53. });
  54. it('search should be equal', () => {
  55. store.setSearchQuery('alert');
  56. expect(store.search).toBe('alert');
  57. });
  58. });