Commit e60f7d00 by Hugo Häggmark Committed by GitHub

Docs: Updates docs for redux framework (#20377)

* Docs: Updates docs for redux framework

* Update contribute/style-guides/redux.md

Co-Authored-By: Marcus Olsson <olsson.e.marcus@gmail.com>

* Update contribute/style-guides/redux.md

Co-Authored-By: Marcus Olsson <olsson.e.marcus@gmail.com>

* Update contribute/style-guides/redux.md

Co-Authored-By: Marcus Olsson <olsson.e.marcus@gmail.com>

* Update contribute/style-guides/redux.md

Co-Authored-By: Marcus Olsson <olsson.e.marcus@gmail.com>

* Docs: Updates after PR comments

* Update redux.md
parent 5b84a3cd
...@@ -5,7 +5,7 @@ To reduce the amount of boilerplate code used to create a strongly typed redux s ...@@ -5,7 +5,7 @@ To reduce the amount of boilerplate code used to create a strongly typed redux s
`+` Much less boilerplate code `+` Much less boilerplate code
`-` Non Redux standard api `-` Non Redux standard api
## New core functionality ## Core functionality
### actionCreatorFactory ### actionCreatorFactory
...@@ -117,13 +117,13 @@ Type '{ nonExistingProperty: string; data: string[]; }' is not assignable to typ ...@@ -117,13 +117,13 @@ Type '{ nonExistingProperty: string; data: string[]; }' is not assignable to typ
Object literal may only specify known properties, and 'nonExistingProperty' does not exist in type 'ExampleReducerState'. [2322] Object literal may only specify known properties, and 'nonExistingProperty' does not exist in type 'ExampleReducerState'. [2322]
``` ```
## New test functionality ## Test functionality
### reducerTester ### reducerTester
Fluent API that simplifies the testing of reducers Fluent API that simplifies the testing of reducers
#### Example #### Usage
```typescript ```typescript
reducerTester() reducerTester()
...@@ -131,3 +131,32 @@ reducerTester() ...@@ -131,3 +131,32 @@ reducerTester()
.whenActionIsDispatched(someAction('reducer tests')) .whenActionIsDispatched(someAction('reducer tests'))
.thenStateShouldEqual({ ...initialState, data: 'reducer tests' }); .thenStateShouldEqual({ ...initialState, data: 'reducer tests' });
``` ```
#### Complex usage
Sometimes you encounter a `resulting state` that contains properties that are hard to compare, such as `Dates`, but you still want to compare that other props in state are correct.
Then you can use `thenStatePredicateShouldEqual` function on `reducerTester` that will return the `resulting state` so that you can expect upon individual properties..
```typescript
reducerTester()
.givenReducer(someReducer, initialState)
.whenActionIsDispatched(someAction('reducer tests'))
.thenStatePredicateShouldEqual(resultingState => {
expect(resultingState.data).toEqual('reducer tests');
return true;
});
```
### thunkTester
Fluent API that simplifies the testing of thunks.
#### Usage
```typescript
const dispatchedActions = await thunkTester(initialState)
.givenThunk(someThunk)
.whenThunkIsDispatched(arg1, arg2, arg3);
expect(dispatchedActions).toEqual([someAction('reducer tests')]);
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment