From de939b815d9c550bc6f91106ce21996fedcb8928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadeusz=20Miesi=C4=85c?= <tadeusz.miesiac@gmail.com> Date: Tue, 3 Oct 2023 03:53:49 +0400 Subject: [PATCH] feat(utils for creating store for tests): created utility function to create store using reducer --- .../createStoreInstanceUsingSliceReducer.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/utils/createStoreInstanceUsingSliceReducer.ts diff --git a/src/utils/createStoreInstanceUsingSliceReducer.ts b/src/utils/createStoreInstanceUsingSliceReducer.ts new file mode 100644 index 00000000..d8cbc2a7 --- /dev/null +++ b/src/utils/createStoreInstanceUsingSliceReducer.ts @@ -0,0 +1,30 @@ +import { AnyAction, Reducer, ThunkMiddleware, configureStore } from '@reduxjs/toolkit'; +import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore'; + +export type ToolkitStoreWithSingleSlice<StateType> = ToolkitStore< + { [name: string]: StateType }, + AnyAction, + [ + ThunkMiddleware< + { + [name: string]: StateType; + }, + AnyAction + >, + ] +>; + +export type CreateStoreInstanceUsingSliceReducer = <StateType>( + name: string, + passedReducer: Reducer<StateType>, +) => ToolkitStoreWithSingleSlice<StateType>; + +export const createStoreInstanceUsingSliceReducer: CreateStoreInstanceUsingSliceReducer = ( + name, + passedReducer, +) => + configureStore({ + reducer: { + [name]: passedReducer, + }, + }); -- GitLab