J'ai testé avec succès mon point de terminaison API construit avec node.js mais je n'arrive toujours pas à déterminer comment tester ce type de code "non asynchrone".Test de node.js avec mocha et chai
/**
* Database service
*/
// Dependencies
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(module.filename);
let db = {};
// Connection
let sequelize = new Sequelize(process.env.DATABASE_URL, {logging: false});
// Models processing
fs
.readdirSync(__dirname)
.filter(file =>
(file.indexOf('.') !== 0) &&
(file !== basename) &&
(file.slice(-3) === '.js'))
.forEach(file => {
/* uncovered */ const model = sequelize.import(path.join(__dirname, file));
/* uncovered */ db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
/* uncovered */ if (db[modelName].associate) {
/* uncovered */ db[modelName].associate(db);
/* uncovered */ }
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
// Export everything
module.exports = db;
Ceci est juste une simple partie de code qui charge tous mes modèles Sequelize (.js) et créer les associations. Pendant les tests avec istanbul, moka et chai, je peux obtenir une couverture complète sur mes fonctions API, mais je ne peux pas obtenir ce code couvert.
Comment dois-je tester cela?