2020-08-07 02:00:44 -05:00
|
|
|
import { thunkTester } from 'test/core/thunk/thunkTester';
|
2022-04-22 08:33:13 -05:00
|
|
|
|
2023-02-14 09:46:42 -06:00
|
|
|
import { BackendSrv } from '@grafana/runtime';
|
2022-04-22 08:33:13 -05:00
|
|
|
import { updateConfigurationSubtitle } from 'app/core/actions';
|
2021-12-16 02:57:18 -06:00
|
|
|
import { OrgRole } from 'app/types';
|
2020-08-07 02:00:44 -05:00
|
|
|
|
2022-04-22 08:33:13 -05:00
|
|
|
import { updateOrganization, setUserOrganization, getUserOrganizations } from './actions';
|
|
|
|
|
2020-08-07 02:00:44 -05:00
|
|
|
const setup = () => {
|
|
|
|
const initialState = {
|
|
|
|
organization: {
|
|
|
|
organization: {
|
|
|
|
id: 1,
|
|
|
|
name: 'New Org Name',
|
|
|
|
},
|
2021-12-16 02:57:18 -06:00
|
|
|
userOrg: [{ orgId: 1, name: 'New Org Name', role: OrgRole.Editor }],
|
2020-08-07 02:00:44 -05:00
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
return {
|
|
|
|
initialState,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
describe('updateOrganization', () => {
|
|
|
|
describe('when updateOrganization thunk is dispatched', () => {
|
|
|
|
const getMock = jest.fn().mockResolvedValue({ id: 1, name: 'New Org Name' });
|
|
|
|
const putMock = jest.fn().mockResolvedValue({ id: 1, name: 'New Org Name' });
|
2023-02-14 09:46:42 -06:00
|
|
|
const backendSrvMock = {
|
2020-08-07 02:00:44 -05:00
|
|
|
get: getMock,
|
|
|
|
put: putMock,
|
2023-02-14 09:46:42 -06:00
|
|
|
} as unknown as BackendSrv;
|
2020-08-07 02:00:44 -05:00
|
|
|
|
|
|
|
it('then it should dispatch updateConfigurationSubtitle', async () => {
|
|
|
|
const { initialState } = setup();
|
|
|
|
|
|
|
|
const dispatchedActions = await thunkTester(initialState)
|
|
|
|
.givenThunk(updateOrganization)
|
|
|
|
.whenThunkIsDispatched({ getBackendSrv: () => backendSrvMock });
|
|
|
|
|
|
|
|
expect(dispatchedActions[0].type).toEqual(updateConfigurationSubtitle.type);
|
|
|
|
expect(dispatchedActions[0].payload).toEqual(initialState.organization.organization.name);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
2021-12-15 02:42:52 -06:00
|
|
|
|
|
|
|
describe('setUserOrganization', () => {
|
|
|
|
describe('when setUserOrganization thunk is dispatched', () => {
|
|
|
|
const postMock = jest.fn().mockResolvedValue({ id: 1, name: 'New Org Name' });
|
|
|
|
|
2023-02-14 09:46:42 -06:00
|
|
|
const backendSrvMock = {
|
2021-12-15 02:42:52 -06:00
|
|
|
post: postMock,
|
2023-02-14 09:46:42 -06:00
|
|
|
} as unknown as BackendSrv;
|
2021-12-15 02:42:52 -06:00
|
|
|
|
|
|
|
const orgId = 1;
|
|
|
|
|
|
|
|
it('then it should dispatch updateConfigurationSubtitle', async () => {
|
|
|
|
const { initialState } = setup();
|
|
|
|
|
|
|
|
const dispatchedActions = await thunkTester(initialState)
|
|
|
|
.givenThunk(setUserOrganization)
|
|
|
|
.whenThunkIsDispatched(orgId, { getBackendSrv: () => backendSrvMock });
|
|
|
|
|
|
|
|
expect(dispatchedActions[0].type).toEqual(updateConfigurationSubtitle.type);
|
|
|
|
expect(dispatchedActions[0].payload).toEqual(initialState.organization.organization.name);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
2021-12-16 02:57:18 -06:00
|
|
|
|
|
|
|
describe('getUserOrganizations', () => {
|
|
|
|
describe('when getUserOrganizations thunk is dispatched', () => {
|
|
|
|
const getMock = jest.fn().mockResolvedValue({ orgId: 1, name: 'New Org Name', role: OrgRole.Editor });
|
2023-02-14 09:46:42 -06:00
|
|
|
const backendSrvMock = {
|
2021-12-16 02:57:18 -06:00
|
|
|
get: getMock,
|
2023-02-14 09:46:42 -06:00
|
|
|
} as unknown as BackendSrv;
|
2021-12-16 02:57:18 -06:00
|
|
|
|
|
|
|
it('then it should dispatch updateConfigurationSubtitle', async () => {
|
|
|
|
const { initialState } = setup();
|
|
|
|
|
|
|
|
const dispatchedActions = await thunkTester(initialState)
|
|
|
|
.givenThunk(getUserOrganizations)
|
|
|
|
.whenThunkIsDispatched({ getBackendSrv: () => backendSrvMock });
|
|
|
|
|
|
|
|
expect(dispatchedActions[0].payload).toEqual(initialState.organization.userOrg[0]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|