# Testing signals — reduxjs/redux

> Canonical page: https://codevetter.com/unpack/redux/testing-signals

# Testing signals — reduxjs/redux

Scanned commit 56abca4749921d68f40cda20afd2043af9751f72 (2026-09-29). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed; no passing result or coverage percentage is established here. Root Vitest tests exercise runtime contracts, while TypeScript fixtures exercise API inference and extension types. CI describes source tests, packed-artifact tests, a compiler-version matrix, and consumer integration builds. This is a bounded inspection, and test discovery and direct source imports limit what can be inferred about examples, documentation, and distribution coverage.
- Root test uses vitest --run --typecheck, with globals enabled and discovery rooted at test; type-tests separately invokes tsc against test/typescript. These configurations were inspected without execution. — [package.json#L47-L50](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/package.json#L47-L50) [vitest.config.mts#L3-L16](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/vitest.config.mts#L3-L16) [tsconfig.test.json#L1-L9](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/tsconfig.test.json#L1-L9)
- createStore tests assert unsubscribe behavior during notification, subscriptions added mid-dispatch, and the latest subscription snapshot for nested dispatch. — [test/createStore.spec.ts#L290-L343](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L290-L343) [test/createStore.spec.ts#L346-L423](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L346-L423)
- Store tests cover plain-object validation, forbidden reducer-time store operations, recovery after a reducer exception, and non-string action type rejection, including acceptance of an empty string type. — [test/createStore.spec.ts#L462-L470](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L462-L470) [test/createStore.spec.ts#L499-L548](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L499-L548) [test/createStore.spec.ts#L585-L612](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L585-L612)
- combineReducers tests exercise invalid map entries, undefined outputs, initialization failure, referential equality, and root shape changes when reducers are added, changed, or removed. — [test/combineReducers.spec.ts#L29-L120](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/combineReducers.spec.ts#L29-L120) [test/combineReducers.spec.ts#L124-L162](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/combineReducers.spec.ts#L124-L162) [test/combineReducers.spec.ts#L311-L382](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/combineReducers.spec.ts#L311-L382)
- Middleware tests cover construction-time dispatch rejection, one-time setup, recursive dispatch through the chain, thunk behavior, and extra dispatch arguments; observable tests include unsubscribe and RxJS integration. — [test/applyMiddleware.spec.ts#L8-L64](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/applyMiddleware.spec.ts#L8-L64) [test/applyMiddleware.spec.ts#L67-L150](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/applyMiddleware.spec.ts#L67-L150) [test/createStore.spec.ts#L794-L879](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/createStore.spec.ts#L794-L879)
- Declaration fixtures use expectTypeOf and typed middleware examples for Promise dispatch, thunk dispatch, exact state access, and custom action unions; CI specifies TypeScript 5.6 through 7.0 plus a non-blocking next compiler. — [test/typescript/middleware.test-d.ts#L10-L107](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/typescript/middleware.test-d.ts#L10-L107) [.github/workflows/test.yaml#L132-L144](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/.github/workflows/test.yaml#L132-L144) [.github/workflows/test.yaml#L175-L186](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/.github/workflows/test.yaml#L175-L186)
- CI describes lint, format, source tests, build/pack, TEST_DIST artifact tests, package-type analysis, and pinned Toolkit consumer projects for Next, Vite, Node, React Native, and Expo; some tests such as compose.spec.ts import source directly despite TEST_DIST. — [.github/workflows/test.yaml#L59-L82](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/.github/workflows/test.yaml#L59-L82) [.github/workflows/test.yaml#L121-L130](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/.github/workflows/test.yaml#L121-L130) [.github/workflows/test.yaml#L224-L237](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/.github/workflows/test.yaml#L224-L237) [test/compose.spec.ts#L1-L19](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/test/compose.spec.ts#L1-L19)
- The inspected counter-ts reducer suite asserts initialization and three synchronous actions, without async lifecycle assertions in that file; examples use separate react-scripts test commands and fall outside the root Vitest test directory. — [examples/counter-ts/src/features/counter/counterSlice.spec.ts#L1-L34](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/counter-ts/src/features/counter/counterSlice.spec.ts#L1-L34) [examples/counter-ts/package.json#L27-L31](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/counter-ts/package.json#L27-L31) [examples/shopping-cart/package.json#L19-L24](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/examples/shopping-cart/package.json#L19-L24) [vitest.config.mts#L3-L6](https://github.com/reduxjs/redux/blob/56abca4749921d68f40cda20afd2043af9751f72/vitest.config.mts#L3-L6)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
