46 |
47 |
48 |
49 |
50 | { isFetching
51 | ?
52 | : (
53 |
54 |
55 |
58 |
59 |
60 |
61 | {character
62 | ?
63 | : }
64 |
65 |
66 | )
67 | }
68 |
69 | );
70 | }
71 |
72 | // Make data available on props
73 | const mapStateToProps = (store: IAppState) => {
74 | return {
75 | character: store.characterState.character,
76 | characters: store.characterState.characters,
77 | isFetching: store.characterState.isFetching,
78 | };
79 | };
80 |
81 | // Make functions available on props
82 | const mapDispatchToProps = (dispatch: any) => {
83 | return {
84 | getCharacters: () => dispatch(getCharactersStartActionCreator()),
85 | setCharacter: (character: any) => dispatch(setCharacterActionCreator(character)),
86 | searchCharacters: (term: string) => dispatch(searchCharactersActionCreator(term)),
87 | }
88 | }
89 |
90 | // Connect the app aware container to the store and reducers
91 | export default connect(mapStateToProps, mapDispatchToProps)(CharacterContainer);
92 |
--------------------------------------------------------------------------------
/src/character/CharacterList.test.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { shallow } from 'enzyme';
3 |
4 | // Business domain imports
5 | import ICharacter from './data/ICharacter.interface';
6 | import GetCharactersMock from './data/GetCharactersMock';
7 | import CharacterList from './CharacterList';
8 |
9 | describe('CharacterList', () => {
10 | const setCharacter = jest.fn();
11 |
12 | describe('without characters', () => {
13 | const characters: ICharacter[] = [];
14 | const wrapper = shallow(