mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* SelectOrgPage: migrate API function calls to Redux * used a much better approach * writes test for getUserOrganizations action * writes test for userOrganizationsLoaded reducer * change userOrg to plural
52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
import { reducerTester } from '../../../../test/core/redux/reducerTester';
|
|
import { OrganizationState, OrgRole } from '../../../types';
|
|
import {
|
|
initialState,
|
|
organizationLoaded,
|
|
organizationReducer,
|
|
userOrganizationsLoaded,
|
|
setOrganizationName,
|
|
} from './reducers';
|
|
|
|
describe('organizationReducer', () => {
|
|
describe('when organizationLoaded is dispatched', () => {
|
|
it('then state should be correct', () => {
|
|
reducerTester<OrganizationState>()
|
|
.givenReducer(organizationReducer, { ...initialState })
|
|
.whenActionIsDispatched(organizationLoaded({ id: 1, name: 'An org' }))
|
|
.thenStateShouldEqual({
|
|
organization: { id: 1, name: 'An org' },
|
|
userOrgs: [],
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when setOrganizationName is dispatched', () => {
|
|
it('then state should be correct', () => {
|
|
reducerTester<OrganizationState>()
|
|
.givenReducer(organizationReducer, { ...initialState, organization: { id: 1, name: 'An org' } })
|
|
.whenActionIsDispatched(setOrganizationName('New Name'))
|
|
.thenStateShouldEqual({
|
|
organization: { id: 1, name: 'New Name' },
|
|
userOrgs: [],
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when userOrganizationsLoaded is dispatched', () => {
|
|
it('then state should be correct', () => {
|
|
reducerTester<OrganizationState>()
|
|
.givenReducer(organizationReducer, {
|
|
...initialState,
|
|
organization: { id: 1, name: 'An org' },
|
|
userOrgs: [],
|
|
})
|
|
.whenActionIsDispatched(userOrganizationsLoaded([{ orgId: 1, name: 'New org', role: OrgRole.Editor }]))
|
|
.thenStateShouldEqual({
|
|
organization: { id: 1, name: 'An org' },
|
|
userOrgs: [{ orgId: 1, name: 'New org', role: OrgRole.Editor }],
|
|
});
|
|
});
|
|
});
|
|
});
|