Я пишу некоторые тесты, и дела идут хорошо, но если я попытаюсь утверждать что-то, что, как я знаю, дико неправильно, тест пройдет, но я также получу уведомление, что компилятор выдает ошибку AssertionError. Однако на самом деле тест не проходит.
Я попытался вернуть ожидаемую фразу, но меня немного смущает вопрос, почему она не работает, и кажется, что это должно быть что-то простое.
describe('api/users/changeAccountDetails', function() {
beforeEach(()=>{
return chai.request(app)
.post('/api/users/signup')
.send({
firstName,
lastName,
username,
password
})
.then(res => {
console.log('a ok');
})
.catch(err => console.error(err));
});
afterEach(()=> {
return User.deleteOne({})
})
describe('POST', ()=>{
it('should update the firstName when given a string', ()=>{
return chai.request(app)
.post('/api/users/changeAccountDetails')
.send({
username,
firstName: "Samus",
lastName
})
.then(res => {
console.log('b ok');
//TODO: figure out why this isn't throwing an error if I make the number something else
console.log(res.body);
expect(res.body.code).to.equal(201);
expect(res.body.user.firstName).to.equal('Michale');
})
.catch(err => console.error(err));
})
});
})
Ответ выглядит так:
b ok
{ code: 201,
user:
{ firstName: 'Samus',
lastName: 'User',
_id: '5da947f7544bce4b6d71111f',
username: 'exampleUser',
password:
'$2a$10$ABQzLOInfORJjsKd5Q3A9ejutCo22EVThHYLsEPPbqpVK717yJNGy',
cats: [],
__v: 0 } }
{ AssertionError: expected 'Samus' to equal 'Michale'
at chai.request.post.send.then.res (/home/adrian/Development/gdc2API/test/test-users.js:186:52)
at process._tickCallback (internal/process/next_tick.js:68:7)
message: 'expected \'Samus\' to equal \'Michale\'',
showDiff: true,
actual: 'Samus',
expected: 'Michale' }
✓ should update the firstName when given a string
closing the server