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_SHARING
action with a newreset
property that is set totrue
:{ type: "START_SHARING", reset: true }
- If the user chooses to share their existing commands, then the
START_SHARING
action is sent withreset
set tofalse
:{ type: "START_SHARING", reset: false }
- When the user clicks on Reset, a
RESET
action should be sent to the Redux store. - Sharing should not be initiated until after the
RESET
action has occurred.
That’s all the up-front design we need. Let’s move on to...