added reducers tests

pull/15212/head
Torkel Ödegaard 6 years ago
parent 61e9148eed
commit 2eca4caa5d
  1. 54
      public/app/features/dashboard/state/reducers.test.ts
  2. 3
      public/app/types/dashboard.ts

@ -1,6 +1,13 @@
import { loadDashboardPermissions } from './actions';
import { OrgRole, PermissionLevel, DashboardState } from 'app/types';
import {
loadDashboardPermissions,
dashboardInitFetching,
dashboardInitCompleted,
dashboardInitFailed,
dashboardInitSlow,
} from './actions';
import { OrgRole, PermissionLevel, DashboardState, DashboardInitPhase } from 'app/types';
import { initialState, dashboardReducer } from './reducers';
import { DashboardModel } from './DashboardModel';
describe('dashboard reducer', () => {
describe('loadDashboardPermissions', () => {
@ -18,4 +25,47 @@ describe('dashboard reducer', () => {
expect(state.permissions.length).toBe(2);
});
});
describe('dashboardInitCompleted', () => {
let state: DashboardState;
beforeEach(() => {
state = dashboardReducer(initialState, dashboardInitFetching());
state = dashboardReducer(state, dashboardInitSlow());
state = dashboardReducer(state, dashboardInitCompleted(new DashboardModel({ title: 'My dashboard' })));
});
it('should set model', async () => {
expect(state.model.title).toBe('My dashboard');
});
it('should set reset isInitSlow', async () => {
expect(state.isInitSlow).toBe(false);
});
});
describe('dashboardInitFailed', () => {
let state: DashboardState;
beforeEach(() => {
state = dashboardReducer(initialState, dashboardInitFetching());
state = dashboardReducer(state, dashboardInitFailed({message: 'Oh no', error: 'sad'}));
});
it('should set model', async () => {
expect(state.model.title).toBe('Dashboard init failed');
});
it('should set reset isInitSlow', async () => {
expect(state.isInitSlow).toBe(false);
});
it('should set initError', async () => {
expect(state.initError.message).toBe('Oh no');
});
it('should set phase failed', async () => {
expect(state.initPhase).toBe(DashboardInitPhase.Failed);
});
});
});

@ -1,6 +1,7 @@
import { DashboardAcl } from './acl';
export interface MutableDashboard {
title: string;
meta: DashboardMeta;
destroy: () => void;
}
@ -27,7 +28,7 @@ export interface DashboardMeta {
focusPanelId?: boolean;
isStarred?: boolean;
showSettings?: boolean;
expires: string;
expires?: string;
isSnapshot?: boolean;
folderTitle?: string;
folderUrl?: string;

Loading…
Cancel
Save