Fixing Cucumber tests by test-driving production code
In this section, we’ll start by doing a little up-front design, then we’ll write unit tests that cover the same functionality as the Cucumber tests, and then use those to build out the new implementation.
Let’s do a little up-front design:
- When the user clicks on Start sharing, a dialog should appear with a Reset button.
- If the user chooses to reset, the Redux store is sent a
START_SHARINGaction with a newresetproperty that is set totrue:{ type: "START_SHARING", reset: true } - If the user chooses to share their existing commands, then the
START_SHARINGaction is sent withresetset tofalse:{ type: "START_SHARING", reset: false } - When the user clicks on Reset, a
RESETaction should be sent to the Redux store. - Sharing should not be initiated until after the
RESETaction has occurred.
That’s all the up-front design we need. Let’s move on to...