Модульное тестирование с помощью Bookshelf.js и knex.js
Я относительно новичок в Node и работаю над проектом с использованием knex и bookshelf. У меня небольшие проблемы с модульным тестированием моего кода, и я не уверен, что делаю неправильно.
В основном у меня есть модель (называется VorcuProduct), которая выглядит следующим образом:
var VorcuProduct = bs.Model.extend({
tableName: 'vorcu_products'
});
module.exports.VorcuProduct = VorcuProduct
И функция, которая сохраняет VorcuProduct, если он не существует в БД. Достаточно просто. Функция, делающая это, выглядит так:
function subscribeToUpdates(productInformation, callback) {
model.VorcuProduct
.where({product_id: productInformation.product_id, store_id: productInformation.store_id})
.fetch()
.then(function(existing_model) {
if (existing_model == undefined) {
new model.VorcuProduct(productInformation)
.save()
.then(function(new_model) { callback(null, new_model)})
.catch(callback);
} else {
callback(null, existing_model)
}
})
}
Какой правильный способ проверить это без попадания в БД? Нужно ли издеватьсяfetch
вернуть модель или неопределенную (в зависимости от теста), а затем сделать то же самое сsave
? Должен ли я использовать rewire для этого?
Как видите, я немного растерялся, поэтому любая помощь будет оценена.
Спасибо!