grafana/public/test/core/redux/reducerTester.test.ts
Hugo Häggmark 044bea0935
Chore: Fixes various strict null errors (#21763)
* Chore: Removes strict null checks in ReducerTester

* Chore: Fixes strict null errors in ConfigureStore

* Chore: Fixes strict null errors in reducer tests

* Chore: Fixes strict null errors in reducers tests

* Chore: Fixes strict null errors in reducers tests

* Chore: Fixes strict null errors in toggleLogActionsMiddleware

* Chore: Fixes strict null errors in navModelReducer

* Core: Fixes strict null errors in public/app/features/admin/state

* Chore: Fixes strict null errors in public/app/features/dashboard/state/reducers.test.ts

* Chore: Fixes strict null errors in public/app/features/explore/state/reducers.test.ts

* Chore: Fixes strict null errors in public/app/features/datasources/state/reducers.test.ts

* Chore: Fixes strict null errors in public/e2e-test/scenarios/templating/templatevariables-crud.test.ts

* Chore: Fixes strict null errors in public/app/features/dashboard/containers/DashboardPage.test.tsx
2020-01-28 09:13:56 +01:00

57 lines
1.3 KiB
TypeScript

import { AnyAction } from 'redux';
import { createAction } from '@reduxjs/toolkit';
import { reducerTester } from './reducerTester';
interface DummyState {
data: string[];
}
const initialState: DummyState = {
data: [],
};
const dummyAction = createAction<string>('dummyAction');
const mutatingReducer = (state: DummyState = initialState, action: AnyAction): DummyState => {
if (dummyAction.match(action)) {
state.data.push(action.payload);
return state;
}
return state;
};
const okReducer = (state: DummyState = initialState, action: AnyAction): DummyState => {
if (dummyAction.match(action)) {
return {
...state,
data: state.data.concat(action.payload),
};
}
return state;
};
describe('reducerTester', () => {
describe('when reducer mutates state', () => {
it('then it should throw', () => {
expect(() => {
reducerTester<DummyState>()
.givenReducer(mutatingReducer, initialState)
.whenActionIsDispatched(dummyAction('some string'));
}).toThrow();
});
});
describe('when reducer does not mutate state', () => {
it('then it should not throw', () => {
expect(() => {
reducerTester<DummyState>()
.givenReducer(okReducer, initialState)
.whenActionIsDispatched(dummyAction('some string'));
}).not.toThrow();
});
});
});