| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import React from 'react';
- import moment from 'moment';
- import { AlertRuleList } from './AlertRuleList';
- import { RootStore } from 'app/stores/RootStore';
- import { backendSrv, createNavTree } from 'test/mocks/common';
- import { mount } from 'enzyme';
- import toJson from 'enzyme-to-json';
- describe('AlertRuleList', () => {
- let page, store;
- beforeAll(() => {
- backendSrv.get.mockReturnValue(
- Promise.resolve([
- {
- id: 11,
- dashboardId: 58,
- panelId: 3,
- name: 'Panel Title alert',
- state: 'ok',
- newStateDate: moment()
- .subtract(5, 'minutes')
- .format(),
- evalData: {},
- executionError: '',
- dashboardUri: 'db/mygool',
- },
- ])
- );
- store = RootStore.create(
- {},
- {
- backendSrv: backendSrv,
- navTree: createNavTree('alerting', 'alert-list'),
- }
- );
- page = mount(<AlertRuleList store={store} />);
- });
- it('should call api to get rules', () => {
- expect(backendSrv.get.mock.calls[0][0]).toEqual('/api/alerts');
- });
- it('should render 1 rule', () => {
- page.update();
- let ruleNode = page.find('.card-item-wrapper');
- expect(toJson(ruleNode)).toMatchSnapshot();
- });
- it('toggle state should change pause rule if not paused', async () => {
- backendSrv.post.mockReturnValue(
- Promise.resolve({
- state: 'paused',
- })
- );
- page.find('.fa-pause').simulate('click');
- // wait for api call to resolve
- await Promise.resolve();
- page.update();
- expect(store.alertList.rules[0].state).toBe('paused');
- expect(page.find('.fa-play')).toHaveLength(1);
- });
- });
|