Skip to content

Commit 7262eea

Browse files
committed
fix: makeStore helper
1 parent 4a1e934 commit 7262eea

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/helpers/store.ts

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import type { Middleware, Reducer } from "@reduxjs/toolkit"
2+
import { configureStore } from "@reduxjs/toolkit"
3+
import { setupListeners } from "@reduxjs/toolkit/query"
4+
5+
// The store setup is wrapped in `makeStore` to allow reuse
6+
// when setting up tests that need the same store config
7+
export function makeStore<R extends Reducer>({
8+
reducer,
9+
middlewares = [],
10+
preloadedState = {},
11+
}: {
12+
reducer: R
13+
middlewares?: Middleware[]
14+
preloadedState?: Partial<ReturnType<R>>
15+
}) {
16+
const store = configureStore({
17+
reducer,
18+
// Adding the api middleware enables caching, invalidation, polling,
19+
// and other useful features of `rtk-query`.
20+
middleware: getDefaultMiddleware => {
21+
return getDefaultMiddleware().concat(middlewares)
22+
},
23+
preloadedState,
24+
})
25+
26+
// configure listeners using the provided defaults
27+
// optional, but required for `refetchOnFocus`/`refetchOnReconnect` behaviors
28+
setupListeners(store.dispatch)
29+
30+
return store
31+
}

0 commit comments

Comments
 (0)