Я выполняю простой тест на узле с Express и suppertest. Есть 10 тестов, из которых тесты POST и GET работают хорошо (первые 6 тестов). Остальные четыре, имеющие PUT и DELETE, возвращают 405 «Метод не разрешен». Это мой код:
test('Should login existing user', async () => {
await request(app)
.post('/api/auth')
.send({
email: userOne.email,
password: userOne.password
})
.expect(200);
});
test('Should NOT login nonexisting user', async () => {
await request(app)
.post('/api/auth')
.send({
email: userThree.email,
password: userThree.password
})
.expect(400);
});
test('Should get profile for authenticated user', async () => {
await request(app)
.get('/api/auth')
.set('x-auth-token', userOne.token)
.expect(200)
});
test('Should NOT get profile for unauthenticated user', async () => {
await request(app)
.get('/api/auth')
.expect(401)
});
test('Should create a new user', async () => {
await request(app)
.post('/api/person')
.set('x-auth-token', userOne.token)
.send({ ...userTwo })
.expect(201);
});
test('Should NOT create a new user', async () => {
await request(app)
.post('/api/person')
.send({ ...userTwo })
.expect(401);
});
test('Should update user for autheticated user', async () => {
await request(app)
.put('api/person/2')
.set('x-auth-token', userOne.token)
.send({ role: 1})
.expect(200)
});
test('Should NOT update user for unauthenticated user', async () => {
await request(app)
.put('api/person/2')
.send({ role: 1})
.expect(401)
});
test('Should delete user for autheticated user', async () => {
await request(app)
.delete('api/person/2')
.set('x-auth-token', userOne.token)
.send()
.expect(200)
});
test('Should NOT delete user for unauthenticated user', async () => {
await request(app)
.delete('api/person/2')
.expect(401)
});
Как я уже говорил выше, первая шестерка с аутентификацией и без нее работает fantasti c. Нижние 4 с запросами PUT и DELETE возвращают 405 «Метод не разрешен». Тестируя те же маршруты с почтальоном, я не испытывал никаких проблем. Методы DELETE и POST работают как положено. Кто-нибудь знает, что я делаю не так? Что я пропускаю? Спасибо за вашу помощь.