mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 00:25:46 -06:00
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
182 lines
4.4 KiB
TypeScript
182 lines
4.4 KiB
TypeScript
import { AppNotificationSeverity, AppNotificationsState } from 'app/types/';
|
|
|
|
import { appNotificationsReducer, clearNotification, notifyApp } from './appNotification';
|
|
|
|
const timestamp = 1649849468889;
|
|
describe('clear alert', () => {
|
|
it('should filter alert', () => {
|
|
const id1 = '1767d3d9-4b99-40eb-ab46-de734a66f21d';
|
|
const id2 = '4767b3de-12dd-40e7-b58c-f778bd59d675';
|
|
|
|
const initialState: AppNotificationsState = {
|
|
byId: {
|
|
[id1]: {
|
|
id: id1,
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
[id2]: {
|
|
id: id2,
|
|
severity: AppNotificationSeverity.Warning,
|
|
icon: 'warning',
|
|
title: 'test2',
|
|
text: 'test alert fail 2',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
const result = appNotificationsReducer(initialState, clearNotification(id2));
|
|
|
|
const expectedResult: AppNotificationsState = {
|
|
byId: {
|
|
[id1]: {
|
|
id: id1,
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
expect(result).toEqual(expectedResult);
|
|
});
|
|
});
|
|
|
|
describe('notify', () => {
|
|
it('create notify message', () => {
|
|
const id1 = '696da53b-6ae7-4824-9e0e-d6a3b54a2c74';
|
|
const id2 = '4477fcd9-246c-45a5-8818-e22a16683dae';
|
|
const id3 = '55be87a8-bbab-45c7-b481-1f9d46f0d2ee';
|
|
|
|
const initialState: AppNotificationsState = {
|
|
byId: {
|
|
[id1]: {
|
|
id: id1,
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
[id2]: {
|
|
id: id2,
|
|
severity: AppNotificationSeverity.Warning,
|
|
icon: 'warning',
|
|
title: 'test2',
|
|
text: 'test alert fail 2',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
const result = appNotificationsReducer(
|
|
initialState,
|
|
notifyApp({
|
|
id: id3,
|
|
severity: AppNotificationSeverity.Info,
|
|
icon: 'info',
|
|
title: 'test3',
|
|
text: 'test alert info 3',
|
|
showing: true,
|
|
timestamp: 1649802870373,
|
|
})
|
|
);
|
|
|
|
const expectedResult: AppNotificationsState = {
|
|
byId: {
|
|
[id1]: {
|
|
id: id1,
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
timestamp,
|
|
showing: true,
|
|
},
|
|
[id2]: {
|
|
id: id2,
|
|
severity: AppNotificationSeverity.Warning,
|
|
icon: 'warning',
|
|
title: 'test2',
|
|
text: 'test alert fail 2',
|
|
timestamp,
|
|
showing: true,
|
|
},
|
|
[id3]: {
|
|
id: id3,
|
|
severity: AppNotificationSeverity.Info,
|
|
icon: 'info',
|
|
title: 'test3',
|
|
text: 'test alert info 3',
|
|
timestamp: 1649802870373,
|
|
showing: true,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
expect(result).toEqual(expectedResult);
|
|
});
|
|
|
|
it('Dedupe identical alerts', () => {
|
|
const initialState: AppNotificationsState = {
|
|
byId: {
|
|
id1: {
|
|
id: 'id1',
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
const result = appNotificationsReducer(
|
|
initialState,
|
|
notifyApp({
|
|
id: 'id2',
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
})
|
|
);
|
|
|
|
const expectedResult: AppNotificationsState = {
|
|
byId: {
|
|
id1: {
|
|
id: 'id1',
|
|
severity: AppNotificationSeverity.Success,
|
|
icon: 'success',
|
|
title: 'test',
|
|
text: 'test alert',
|
|
showing: true,
|
|
timestamp,
|
|
},
|
|
},
|
|
lastRead: timestamp - 10,
|
|
};
|
|
|
|
expect(result).toEqual(expectedResult);
|
|
});
|
|
});
|