为什么我的测试接收状态200,即使没有提供令牌?



我定义了let token并在每个实现之前登录,但在本例中,我只定义了token = '',以确保客户机没有登录。我应该得到401的状态,但我得到了200。你能告诉我我哪里做错了吗?

describe('PUT /:id', () => {
let token;
let genre;
let newName;
let id;
const exec = async () => {
return await request(server)
.put('/api/genres/' + id)
.set('x-auth-token', token)
.send({ name: newName });
}
beforeEach(async () => {
genre = new Genre({ name: 'genre1' });
await genre.save();
token = new User().generateAuthToken();
id = genre._id;
newName = 'updatedName';
});
it('should return 401 if client is not logged in', async () => {
token = '';
const res = await exec();
expect(res.status).toBe(401);
});
● /api/genres › PUT /:id › should return 401 if client is not logged in
expect(received).toBe(expected) // Object.is equality
Expected: 401
Received: 200
142 |             const res = await exec();
143 |
> 144 |             expect(res.status).toBe(401);
|                                ^
145 |         });
146 |
147 |         it('should return 400 if genre is less than 5 characters', async () => {
at Object.toBe (tests/integration/genres.test.js:144:32)

您可能需要向我们展示包含端点的路由文件夹,以检查用户是否登录,并尝试检查您的端点上是否需要授权中间件功能。

最新更新