|
|
|
|
@ -2,6 +2,14 @@ import configureMockStore from 'redux-mock-store'; |
|
|
|
|
import thunk from 'redux-thunk'; |
|
|
|
|
import { initDashboard, InitDashboardArgs } from './initDashboard'; |
|
|
|
|
import { DashboardRouteInfo } from 'app/types'; |
|
|
|
|
import { getBackendSrv } from 'app/core/services/backend_srv'; |
|
|
|
|
import { |
|
|
|
|
dashboardInitFetching, |
|
|
|
|
dashboardInitCompleted, |
|
|
|
|
dashboardInitServices, |
|
|
|
|
} from './actions'; |
|
|
|
|
|
|
|
|
|
jest.mock('app/core/services/backend_srv'); |
|
|
|
|
|
|
|
|
|
const mockStore = configureMockStore([thunk]); |
|
|
|
|
|
|
|
|
|
@ -13,6 +21,7 @@ interface ScenarioContext { |
|
|
|
|
variableSrv: any; |
|
|
|
|
dashboardSrv: any; |
|
|
|
|
keybindingSrv: any; |
|
|
|
|
backendSrv: any; |
|
|
|
|
setup: (fn: () => void) => void; |
|
|
|
|
actions: any[]; |
|
|
|
|
storeState: any; |
|
|
|
|
@ -59,6 +68,7 @@ function describeInitScenario(description: string, scenarioFn: ScenarioFn) { |
|
|
|
|
fixUrl: false, |
|
|
|
|
routeInfo: DashboardRouteInfo.Normal, |
|
|
|
|
}, |
|
|
|
|
backendSrv: getBackendSrv(), |
|
|
|
|
timeSrv, |
|
|
|
|
annotationsSrv, |
|
|
|
|
unsavedChangesSrv, |
|
|
|
|
@ -97,12 +107,12 @@ describeInitScenario('Initializing new dashboard', ctx => { |
|
|
|
|
ctx.args.routeInfo = DashboardRouteInfo.New; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should send action to set loading state to fetching', () => { |
|
|
|
|
expect(ctx.actions[0].type).toBe('DASHBOARD_INIT_FETCHING'); |
|
|
|
|
it('Should send action dashboardInitFetching', () => { |
|
|
|
|
expect(ctx.actions[0].type).toBe(dashboardInitFetching.type); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should send action to set loading state to Initializing', () => { |
|
|
|
|
expect(ctx.actions[1].type).toBe('DASHBOARD_INIT_SERVICES'); |
|
|
|
|
it('Should send action dashboardInitServices ', () => { |
|
|
|
|
expect(ctx.actions[1].type).toBe(dashboardInitServices.type); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should update location with orgId query param', () => { |
|
|
|
|
@ -110,8 +120,8 @@ describeInitScenario('Initializing new dashboard', ctx => { |
|
|
|
|
expect(ctx.actions[2].payload.query.orgId).toBe(12); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should send action to set dashboard model', () => { |
|
|
|
|
expect(ctx.actions[3].type).toBe('DASHBOARD_INIT_COMLETED'); |
|
|
|
|
it('Should send action dashboardInitCompleted', () => { |
|
|
|
|
expect(ctx.actions[3].type).toBe(dashboardInitCompleted.type); |
|
|
|
|
expect(ctx.actions[3].payload.title).toBe('New dashboard'); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
@ -125,4 +135,18 @@ describeInitScenario('Initializing new dashboard', ctx => { |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describeInitScenario('Initializing home dashboard', ctx => { |
|
|
|
|
ctx.setup(() => { |
|
|
|
|
ctx.args.routeInfo = DashboardRouteInfo.Home; |
|
|
|
|
ctx.backendSrv.get.mockReturnValue(Promise.resolve({ |
|
|
|
|
redirectUri: '/u/123/my-home' |
|
|
|
|
})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should redirect to custom home dashboard', () => { |
|
|
|
|
expect(ctx.actions[1].type).toBe('UPDATE_LOCATION'); |
|
|
|
|
expect(ctx.actions[1].payload.path).toBe('/u/123/my-home'); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|