javascript - Node.Js - Jest Testing (Token Problem got 401 "Unauthorized")
问题描述
Hello I'm testing with Jest a project with Node.js I want to test my functions
const userOne = {
_id: userOneId,
name: 'Mike',
email: 'mikey@example.com',
password: '56what!!',
tokens: [{
token: jwt.sign({ _id: userOneId }, process.env.JWT_SECRET)
}] }
test('Should get profile for user', async () => {
await request(app)
.get('/users/me')
.set('Authorization', `Bearer ${userOne.tokens[0].token}`)
.send()
.expect(200)
})
but I got this error :
● Should get profile for user
expected 200 "OK", got 401 "Unauthorized"
at Test.Object.<anonymous>.Test._assertStatus (node_modules/supertest/lib/test.js:270:12)
at Test.Object.<anonymous>.Test._assertFunction (node_modules/supertest/lib/test.js:285:11)
at Test.Object.<anonymous>.Test.assert (node_modules/supertest/lib/test.js:175:21)
at Server.localAssert (node_modules/supertest/lib/test.js:133:12)
解决方案
您是否在具有相同身份验证令牌的 REST 客户端中为该端点获得 200?401“未授权”表示令牌无效。所以你需要检查你的令牌。如果令牌没有问题,请尝试以下
我相信这个请求是超测的要求吗?
const request = require('supertest');
test('Should get profile for user', async () => {
const response = await request(app)
.get('/users/me')
.set('Authorization', `Bearer ${userOne.tokens[0].token}`)
expect(response.status).toEqual(200);
});
推荐阅读
- jwt - 在应用程序映像重建之前发出的 JWT 在映像构建/部署后不起作用
- sql-server - 将具有多个 char(13) 换行符的列中的数据分离到它们自己的列中
- php - Stripe 订阅 - 禁用按比例分配的更新
- c# - 实体框架选择多对多与连接文本
- javascript - 无法使用 Visual Studio Code 终端运行节点文件
- python - python sqlite插入错误
- javascript - MobX 和深度可观察性
- epplus - EPPlus - C# 中的自定义函数 - 处理电子表格之外的单元格依赖项
- php - 消息:试图获取非对象的属性“Cls_Class”
- java - 在 SOAP 服务项目中创建文件