it('html5 mode should get same result', done => {
    let router = new SMERouter('route-view', 'html5')
    let count = 0
    let indexHandler = sinon.spy()
    const temp = {
      name: 'hwen'
    }

    router.route('/index', (req, res, next) => {
      count++
      indexHandler()
      let body = req.body
      body.should.be.deep.equal(temp)

      if (count === 1) {
        router.go('/other')
      }

      if (count === 2) {
        indexHandler.should.have.callCount(2)
        router.stop()
        done()
      }
    })

    router.route('/other', () => {
      router.back() // same as window.history.go(-1)
    })
    router.go('/index', { name: 'hwen' })
  })
  it('request=> /test/oook?info=hallo, query.info should be hallo', done => {
    let router = new SMERouter('route-view', 'html5')
    router.route(routePath, (req) => {
      req.query.info.should.be.equal('hallo')
      router.stop()
      done()
    })

    router.go('/test/oook?info=hallo')
  })
  it('params.sme should be whattt', done => {
    let router = new SMERouter('route-view', 'html5')
    router.route(routePath, (req) => {
      req.params.sme.should.be.equal('whattt')
      router.stop()
      done()
    })

    router.go('/test/whattt')
  })
  it('should be not match any routes', done => {
    let cc = sinon.spy()
    let router = new SMERouter('route-view', 'html5')
    router.route(routePath, cc)

    router.go('/test-other')

    setTimeout(() => {
      cc.should.have.callCount(0)
      router.stop()
      done()
    }, 500)
  })
  it('should match route', done => {
    let router = new SMERouter('route-view', 'html5')
    router.route(routePath, (req, res, next) => {
      res.render(template)

      let content = ''

      content = document.getElementById('route-view').innerHTML
      content.should.equal(template)
      router.stop()
      done()
    })

    router.go('/test/something')
  })
  it('request=> /test/whattt, body should be body', done => {
    const body = {
      mes: 'hi',
      name: 'hwen'
    }

    const temp = {
      mes: 'hi',
      name: 'hwen'
    }

    let router = new SMERouter('route-view', 'html5')
    router.route(routePath, (req) => {
      req.body.should.be.deep.equal(temp)
      router.stop()
      done()
    })

    router.go('/test/whattt', body)
  })