Я пытаюсь написать тест для приложения node.js, используя TDD, но не могу понять, как написать тест chai expect для моей функции Products Route get()
.
// productsController.js
let items = [
{
id: 1,
name: 'Product 1',
description: 'Product1 description',
price: 19.00
}
];
module.exports = {
get(_, res) {
res.json({items});
}
};
Я читал документы несколько раз, но, похоже, не совсем понимаю, как я могу проверить, должен ли объект ответа содержать ключ items
, где значение равно array
из 'products'
со схемой, подобной указанной выше.
Что я пробовал:
// products.test.js
const { get, getById } = require('../../routes/productsController');
const res = {
jsonCalledWith: {},
json(arg) {
this.jsonCalledWith = arg
}
}
describe('Products Route', function() {
describe('get() function', function() {
it('should return an array of products ', function() {
get(req, res);
expect(res.jsonCalledWith).to.be.have.key('items').that.contains.something.like({
id: 1,
name: 'name',
description: 'description',
price: 18.99
});
});
});
});
Однако я получаю эту ошибку: AssertionError: expected { Object (items) } to be an array
Кто-нибудь знает, как могу ли я успешно написать этот тест?