---
name: trezor/tests-native
source: https://app.decimal.ai/s/trezor-tests-native@1/SKILL.md
source_sha256: 0bd313f9fbf1
---

# Native Test Utilities

Two packages provide testing utilities for suite-native. Pick the one that fits your test:

| Need                                                                  | Package                          |
| --------------------------------------------------------------------- | -------------------------------- |
| Component or hook test with no Redux store                            | `@suite-native/test-utils`       |
| Component or hook test that reads from or dispatches to a Redux store | `@suite-native/test-utils-store` |

Never import directly from `@testing-library/react-native` — both packages re-export it.

## `@suite-native/test-utils`

Provides `renderWithBasicProvider` and `renderHookWithBasicProvider`, which wrap the component with theme, safe-area,
intl, and formatters providers. Also exports `BasicProviderForTests`, `extraDependenciesNativeMock`, and all of
`@testing-library/react-native`.

`BasicProviderForTests` is the underlying wrapper component used by both render helpers. Use it directly only when you
need to pass it as a `wrapper` option to a custom render or hook call — for example, when composing your own render
helper or when the testing-library API requires a `wrapper` component rather than a pre-rendered tree.

## `@suite-native/test-utils-store`

Extends `@suite-native/test-utils` with Redux support. Provides `renderWithStoreProvider` and
`renderHookWithStoreProvider` — both accept the same options: `preloadedState?: Record<string, unknown>` or a
pre-built `store?: TestStore`. Plus store factory helpers:

- `createStoreFromPreloadedState(preloadedState?)` — static (no-op) reducers; use when the test only reads state.
- `createLightStore({ reducer, preloadedState })` — real reducers; use when the test dispatches actions that must mutate
  state.
- `createStaticReducer(initialState)` — creates a no-op reducer for slices the test does not interact with.
- `mergePreloadedState(base, overrides)` — deep-merges a partial `overrides` into a complete typed `base` state object
  and returns it typed as `base`. Use this to build the `preloadedState` arg: start from a fully-constructed state
  (e.g. the result of `store.getState()` on a default store) and override only the slices the test cares about.