Tengo el siguiente método de clase en mi modelo Sequelize:
getById(id) { return new Promise((resolve, reject) => { var Conference = sequelize.models.conference; Conference.findById(id).then(function(conference) { if (_.isObject(conference)) { resolve(conference); } else { throw new ResourceNotFound(conference.name, {id: id}); } }).catch(function(err) { reject(err); }); }); } Ahora quiero probar mi método con chai. Pero ahora, cuando hago Conference.getById(confereceId) obtengo lo siguiente:
Promise { _bitField: 0, _fulfillmentHandler0: undefined, _rejectionHandler0: undefined, _promise0: undefined, _receiver0: undefined }¿Es esto correcto y cómo afirmo el resultado con chai?
Su llamada Conference.getById(confereceId) devuelve una promesa, por lo que primero debe resolver la promesa a través de then y afirmar el resultado con chai de esta manera:
const assert = require('chai').assert; Conference .getById(confereceId) .then(conf => { assert.isObject(conf); // ...other assertions }, err => { assert.isOk(false, 'conference not found!'); // no conference found, fail assertion when it should be there });