I’m pretty sure you have a timing synchronization problem. A number of tests indicate the timer has not reached 00:00. This means that the display of 00:00 did not stay for 1 second. In your Timer component’s decreaseTimer function, the default case is
this.setState((prevState) => {
return {
timerSecond: prevState.timerSecond - 1
}
})
and this won’t get called for another second. So that time remains on the display for 1 second. But when the timer gets to 0, you did
this.props.decreaseTimerMinute();
this.setState({
timerSecond: 59
})
in the switch case 0. You are resetting the timer immediately, so the display of 0 won’t stay on the display for 1 second. We discussed this issue in another thread (look for 25+5 Clock - Help) If you solve this timing problem, I believe many of the test failures will go away.
Another suggestion I would like to make is the way of tracking the time left. It seems like you’re keeping track of minutes in App and seconds in Timer. I think it will simplify a lot if you let Timer keep track of remaining time. Keep track of time remaining in seconds and convert that to min:sec when displaying it.
BTW, I like your visual. The page is very attractive.