react-test-context-setup
Low-impact test pattern for setup of react context and provider
Problem
React Context API provides a low-friction method for managing state change without depending on large-overhead libraries such as redux. Testing components which use context is a well-understood problem but isolating the context and provider setup code for testing can be tricky.
Example
Below is the code for setting up a basic context to hold a counter (context.js
).
;; const initialState = count: 0 const CounterContext = React; const CounterProvider = { const state dispatch = ; return <CounterContextProvider value= state dispatch > children </CounterContextProvider> ;}
Installation
npm install --save-dev react-test-context-setup
Usage
;;;; ; const renderWithContext = { return ;} ;
Explanation
The component ContextTestComponent
renders all state from a given context by iterating through the keys of the state object and creating a <div />
where the data-testid
is set to the key and the content is set to the value.
For example the following state:
"count": 0 "someOtherProperty": "testdata"
would be rendered as:
0 testdata