Pomodoro Project failing tests 12 & 13

Hey everyone,
For the life of me I cannot get my project to pass tests 12 & 13 for this project. I have looked over my code until my eyes are crossed. This seems confusing since it passes tests 14 & 15, which are literally the tests I’m failing, just reversed. Everything looks like it’s working like it should, but obviously I’m missing something.

  1. When a session countdown reaches zero (NOTE: timer MUST reach 00:00), and a new countdown begins, the element with the id of “timer-label” should display a string indicating a break has begun.

  2. When a session countdown reaches zero (NOTE: timer MUST reach 00:00), a new break countdown should begin, counting down from the value currently displayed in the id=“break-length” element.

  3. When a break countdown reaches zero (NOTE: timer MUST reach 00:00), and a new countdown begins, the element with the id of “timer-label” should display a string indicating a session has begun.3713ms

  4. When a break countdown reaches zero (NOTE: timer MUST reach 00:00), a new session countdown should begin, counting down from the value currently displayed in the id=“session-length” element.

My project can be found at this codepen, but here’s the React code:

class TimerController extends React.Component {
  render() {
    return (
      <div id={this.props.id}>
        <div id={this.props.labelId}>{this.props.id} Length</div>
        <div id={this.props.lengthId}>{this.props.length}</div>
        <button 
          id={this.props.minusId} 
          onClick={this.props.click} 
          value="-">&#8711;</button>
        <button 
          id={this.props.addId} 
          onClick={this.props.click} 
          value="+">&#8710;</button>
      </div>
    )
  }
}

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      break: 5,
      session: 25,
      timer: 1500,
      timeRun: false,
      interval: '',
      currType: 'session'
    }

    this.playSound = this.playSound.bind(this);
    this.stopSound = this.stopSound.bind(this);
    this.resetClocks = this.resetClocks.bind(this);
    this.beginTime = this.beginTime.bind(this);
    this.stopTime = this.stopTime.bind(this);
    this.switchCurrType = this.switchCurrType.bind(this);
    this.toggleTimeRun = this.toggleTimeRun.bind(this);
    this.setBreakLength = this.setBreakLength.bind(this);
    this.setSessionLength = this.setSessionLength.bind(this);
    this.setTimeLength = this.setTimeLength.bind(this);
    this.timeToClock = this.timeToClock.bind(this);
  }

  playSound() {
    const audio = document.getElementById('beep');
    audio.play();
  }

  stopSound() {
    const audio = document.getElementById('beep');
    if (audio.play()) {
      audio.pause();
      audio.currentTime = 0;
    }
  }

  resetClocks() {
    this.stopSound();
    if (this.state.timeRun) {
      this.toggleTimeRun();
    }

    this.setState({
      break: 5,
      session: 25,
      timer: 1500,
      timeRun: false,
      interval: '',
      currType: 'session'
    })
  }

  toggleTimeRun() {
    if (this.state.timeRun) {
      this.stopTime();
    } else {
      this.beginTime();
    }
  }

  beginTime() {
    const interval = setInterval(() => {
      if (this.state.timer > 0) {
        this.setState({timer: this.state.timer - 1});
      } else {
        this.switchCurrType();
      }
    }, 1000)
    this.setState({
      timeRun: true,
      interval: interval
    });
  }

  stopTime() {
    clearInterval(this.state.interval);
    this.setState({
      timeRun: false,
      interval: ''
    });

    this.stopSound();
  }

  switchCurrType() {
    this.stopTime();
    this.playSound();
    
    if (this.state.currType === 'session') {
      this.setState({
        currType: 'break',
        timer: this.state.break * 60
      }) 
    } else {
      this.setState({
        currType: 'session',
        timer: this.state.session * 60
      })
    }
    this.beginTime();
  }

  setBreakLength(e) {
    this.setTimeLength('break', e.target.value, this.state.break);
  }

  setSessionLength(e) {
    this.setTimeLength('session', e.target.value, this.state.session);
  }

  setTimeLength(type, value, currLength) {
    if (this.state.timeRun) return;

    let newLength;
    if (value === '+' && currLength < 60) {
      newLength = currLength + 1;
      this.setState({
        [type]: newLength
      })
    } else if (value === '-' && currLength > 1) {
      newLength = currLength - 1;
      this.setState({
        [type]: newLength
      })
    }

    if (type === this.state.currType) {
      const newTime = newLength * 60;
      this.setState({
        timer: newTime
      })
    }
  }

  timeToClock() {
    const minutes = Math.floor(this.state.timer / 60);
    const seconds = this.state.timer - (minutes * 60);
    const minClocked = minutes < 10 ? '0' + minutes : minutes;
    const secClocked = seconds < 10 ? '0' + seconds : seconds;
    return `${minClocked}:${secClocked}`;
  }

  render() {
    return (
      <div className="App">
        <TimerController 
          id={'break'}
          labelId={'break-label'}
          lengthId={'break-length'}
          length={this.state.break}
          minusId={'break-decrement'}
          addId={'break-increment'}
          click={this.setBreakLength}/>

        <TimerController 
          id={'session'}
          labelId={'session-label'}
          lengthId={'session-length'}
          length={this.state.session}
          minusId={'session-decrement'}
          addId={'session-increment'}
          click={this.setSessionLength}/>

        <div id="current">
          <div id="timer-label">{this.state.currType}</div>
          <div id="time-left">{this.timeToClock()}</div>
          <div id="controls">
            <button id="start_stop" onClick={this.toggleTimeRun}>start/stop</button>
            <button id="reset" onClick={this.resetClocks}>reset</button>
          </div>
        </div>
        <audio id="beep" src="https://sampleswap.org/samples-ghost/MELODIC%20LOOPS/WORLD%20LOOPS/1243[kb]133_gamelan.aif.mp3"></audio>
      </div>
    );
  }
}

ReactDOM.render(
  <App/>,
  document.getElementById('app')
)

Any help would be greatly appreciated.