Skip to content
Snippets Groups Projects
Commit 3a00598a authored by Tadeusz Miesiąc's avatar Tadeusz Miesiąc
Browse files

test(drugs reducers): added missing test for loading case

parent de939b81
No related branches found
No related tags found
2 merge requests!223reset the pin numbers before search results are fetch (so the results will be...,!20Resolve MIN-57 "Feature/ connect drug search query"
Pipeline #79023 passed
import { AnyAction, ThunkMiddleware } from '@reduxjs/toolkit';
import { ToolkitStore, configureStore } from '@reduxjs/toolkit/dist/configureStore';
import { PROJECT_ID } from '@/constants/mapId';
import { drugsFixture } from '@/models/fixtures/drugFixtures';
import { HTTP_NOT_FOUND, HTTP_OK } from '@/constants/httpResponses';
import { mockNetworkResponse } from '@/utils/mockNetworkResponse';
import {
ToolkitStoreWithSingleSlice,
createStoreInstanceUsingSliceReducer,
} from '@/utils/createStoreInstanceUsingSliceReducer';
import { getDrugs } from './drugs.thunks';
import drugsReducer from './drugs.slice';
import { DrugsState } from './drugs.types';
......@@ -17,33 +19,10 @@ const INITIAL_STATE: DrugsState = {
error: { name: '', message: '' },
};
type SliceReducerType = ToolkitStore<
{
drugs: DrugsState;
},
AnyAction,
[
ThunkMiddleware<
{
drugs: DrugsState;
},
AnyAction
>,
]
>;
const createStoreInstanceUsingSliceReducer = (): SliceReducerType =>
configureStore({
reducer: {
drugs: drugsReducer,
},
});
describe('drugs reducer', () => {
let store = {} as SliceReducerType;
let store = {} as ToolkitStoreWithSingleSlice<DrugsState>;
beforeEach(() => {
store = createStoreInstanceUsingSliceReducer();
store = createStoreInstanceUsingSliceReducer('drugs', drugsReducer);
});
it('should match initial state', () => {
......@@ -79,7 +58,22 @@ describe('drugs reducer', () => {
expect(data).toEqual([]);
});
it.skip('should update store on loading getDrugs query', () => {
// TODO
it('should update store on loading getDrugs query', async () => {
mockedAxiosClient
.onGet(`projects/${PROJECT_ID}/drugs:search?query=${SEARCH_QUERY}`)
.reply(HTTP_OK, drugsFixture);
const drugsPromise = store.dispatch(getDrugs(SEARCH_QUERY));
const { data, loading } = store.getState().drugs;
expect(data).toEqual([]);
expect(loading).toEqual('pending');
drugsPromise.then(() => {
const { data: dataPromiseFulfilled, loading: promiseFulfilled } = store.getState().drugs;
expect(dataPromiseFulfilled).toEqual(drugsFixture);
expect(promiseFulfilled).toEqual('succeeded');
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment