12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import '@grafana/runtime';
- import { StateHistoryItem } from 'app/types/unified-alerting';
- import { fetchAnnotations, sortStateHistory } from './annotations';
- const get = jest.fn(() => {
- return new Promise((resolve) => {
- resolve(undefined);
- });
- });
- jest.mock('@grafana/runtime', () => ({
- getBackendSrv: () => ({
- get,
- }),
- }));
- describe('annotations', () => {
- beforeEach(() => get.mockClear());
- it('should fetch annotation for an alertId', () => {
- const ALERT_ID = 'abc123';
- fetchAnnotations(ALERT_ID);
- expect(get).toBeCalledWith('/api/annotations', { alertId: ALERT_ID });
- });
- });
- describe(sortStateHistory, () => {
- describe('should stably sort', () => {
- describe('when timeEnd is different', () => {
- it('should not sort by rule id', () => {
- let data: StateHistoryItem[] = [
- { timeEnd: 23, time: 22, id: 1 } as StateHistoryItem,
- { timeEnd: 22, time: 21, id: 3 } as StateHistoryItem,
- { timeEnd: 22, time: 22, id: 2 } as StateHistoryItem,
- { timeEnd: 24, id: 3 } as StateHistoryItem,
- ];
- data.sort(sortStateHistory);
- expect(data[0].timeEnd).toBe(24);
- expect(data[1].timeEnd).toBe(23);
- expect(data[2].time).toBe(22);
- expect(data[3].id).toBe(3);
- });
- });
- describe('when only the rule id is different', () => {
- it('should sort by rule id', () => {
- let data: StateHistoryItem[] = [
- { timeEnd: 23, time: 22, id: 1 } as StateHistoryItem,
- { timeEnd: 23, time: 22, id: 3 } as StateHistoryItem,
- { timeEnd: 23, time: 22, id: 2 } as StateHistoryItem,
- { timeEnd: 23, time: 22, id: 6 } as StateHistoryItem,
- ];
- data.sort(sortStateHistory);
- expect(data[0].id).toBe(6);
- expect(data[1].id).toBe(3);
- expect(data[2].id).toBe(2);
- expect(data[3].id).toBe(1);
- });
- });
- });
- });
|