Chai-http似乎不接受标头始终发送401

时间:2018-08-12 07:03:47

标签: unit-testing mocha chai chai-http

我正在尝试测试使用jsonwebtoken保护的API路由。

我已经在邮递员中测试了我的路线,并获得了正确的结果,但是使用mocha / chai / chai-http运行相同的测试无法正常工作。

每次我测试受保护的路由时,都会收到401“未经授权”

describe('user', () => {
    let user, token

    beforeEach(async () => {
        await dropDb()

        user = await new User({ email: 'testing@test.com', password: 'password' }).save()
        const payload = { userid: user.id, role: user.roles.title, status: user.roles.status }
        token = jwt.sign(payload, secret, { expiresIn: 3600 })
    })

    it('should return a list of users when logged in', async () => {
        console.log(token)

        const result = await chai.request(app)
            .get('/api/user')
            .set('Authorization', `Bearer ${token}`)

        expect(result).to.have.status(200)
        expect(result).to.be.json
    })
})

我的直觉是,在某种情况下,有一种竞赛条件,即传递到集合中的令牌在测试运行之前没有完成签名。但是在结果内部似乎已经设置了我的令牌。

enter image description here

另外,如果在我看到console.log令牌与创建的令牌匹配后,则进行console.log。有人遇到类似的问题吗?

enter image description here

0 个答案:

没有答案