123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { AlertTabCtrl } from './AlertTabCtrl';
- interface Args {
- notifications?: Array<{ uid?: string; id?: number; isDefault: boolean }>;
- }
- function setupTestContext({ notifications = [] }: Args = {}) {
- const panel = {
- alert: { notifications },
- options: [],
- title: 'Testing Alerts',
- };
- const $scope = {
- ctrl: {
- panel,
- render: jest.fn(),
- },
- };
- const dashboardSrv: any = {};
- const uiSegmentSrv: any = {};
- const datasourceSrv: any = {};
- const controller = new AlertTabCtrl($scope, dashboardSrv, uiSegmentSrv, datasourceSrv);
- controller.notifications = notifications;
- controller.alertNotifications = [];
- controller.initModel();
- return { controller };
- }
- describe('AlertTabCtrl', () => {
- describe('when removeNotification is called with an uid', () => {
- it('then the correct notifier should be removed', () => {
- const { controller } = setupTestContext({
- notifications: [
- { id: 1, uid: 'one', isDefault: true },
- { id: 2, uid: 'two', isDefault: false },
- ],
- });
- expect(controller.alert.notifications).toEqual([
- { id: 1, uid: 'one', isDefault: true, iconClass: 'bell' },
- { id: 2, uid: 'two', isDefault: false, iconClass: 'bell' },
- ]);
- expect(controller.alertNotifications).toEqual([
- { id: 2, uid: 'two', isDefault: false, iconClass: 'bell' },
- { id: 1, uid: 'one', isDefault: true, iconClass: 'bell' },
- ]);
- controller.removeNotification({ uid: 'one' });
- expect(controller.alert.notifications).toEqual([{ id: 2, uid: 'two', isDefault: false, iconClass: 'bell' }]);
- expect(controller.alertNotifications).toEqual([{ id: 2, uid: 'two', isDefault: false, iconClass: 'bell' }]);
- });
- });
- describe('when removeNotification is called with an id', () => {
- it('then the correct notifier should be removed', () => {
- const { controller } = setupTestContext({
- notifications: [
- { id: 1, uid: 'one', isDefault: true },
- { id: 2, uid: 'two', isDefault: false },
- ],
- });
- expect(controller.alert.notifications).toEqual([
- { id: 1, uid: 'one', isDefault: true, iconClass: 'bell' },
- { id: 2, uid: 'two', isDefault: false, iconClass: 'bell' },
- ]);
- expect(controller.alertNotifications).toEqual([
- { id: 2, uid: 'two', isDefault: false, iconClass: 'bell' },
- { id: 1, uid: 'one', isDefault: true, iconClass: 'bell' },
- ]);
- controller.removeNotification({ id: 2 });
- expect(controller.alert.notifications).toEqual([{ id: 1, uid: 'one', isDefault: true, iconClass: 'bell' }]);
- expect(controller.alertNotifications).toEqual([{ id: 1, uid: 'one', isDefault: true, iconClass: 'bell' }]);
- });
- });
- });
|