Pruebas unitarias con Bookshelf.js y knex.js
Soy relativamente nuevo en Node y estoy trabajando en un proyecto usando knex y estantería. Tengo una pequeña unidad de problemas probando mi código y no estoy seguro de qué estoy haciendo mal.
Básicamente tengo un modelo (llamado VorcuProduct) que se ve así:
var VorcuProduct = bs.Model.extend({
tableName: 'vorcu_products'
});
module.exports.VorcuProduct = VorcuProduct
Y una función que guarda un VorcuProduct si no existe en la base de datos. Bastante sencillo. La función que hace esto se ve así:
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)
}
})
}
¿Cuál es la forma correcta de probar esto sin golpear el DB? ¿Necesito burlarmefetch
para devolver un modelo o indefinido (dependiendo de la prueba) y luego hacer lo mismo consave
? ¿Debo usar rewire para esto?
Como puede ver, estoy un poco perdido, por lo que cualquier ayuda será apreciada.
¡Gracias!