Я тестировал свой «пользовательский» код с помощью mocha и chai, но я продолжаю получать эту ошибку. Файл index. js, который создает модели, строится автоматически и работает нормально. Затем я попытался добавить тесты с использованием мокко и не смог понять причину.
![error](https://i.stack.imgur.com/6I4GW.png)
мои тестовые папки:
test / user / user_dbtest:
const {expect}=require('chai')
const{usernameExists}=require('../../services/user/user_db')
describe('user db tests',()=>{
it('check whether username alreddy exists',async()=>{
const check=await usernameExists('')
expect(check).to.be.false
expect(check===null).to.be.false
expect(check===undefined).to.be.false
});
});
services / user / user_db:
const db=require('../../models/index.js')
async function usernameExists(username){
const user= await db.user.findOne({
where:{username}
});
if(user) return user
return false
}
module.exports={usernameExists}
модели / индекс. js:
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const config = require('../config/config');
const db = {};
console.log(config)
const sequelize=new Sequelize(config.db.database,config.db.username,config.db.password,{
dialect:'mysql',
host:config.db.host
})
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
//ASSOCIATIONS
db.book_belongs_to.belongsTo(db.user)
db.book_belongs_to.belongsTo(db.book)
db.book_bought_by.belongsTo(db.user)
db.book_bought_by.belongsTo(db.book)
sequelize
.authenticate()
.then(()=>{
console.log("connected");
})
.catch(err=>{
console.error(err);
});
module.exports = db;
моделей на пользователя. js
'use strict';
module.exports=(sequelize,Datatypes)=>{
return sequelize.define('user',{
username:{
type:Datatypes.STRING,
allowNull:false
},
firstname:{
type:Datatypes.STRING,
allowNull:false
},
middlename:{
type:Datatypes.STRING,
},
lastname:{
type:Datatypes.STRING,
allowNull:false
},
email:{
type:Datatypes.STRING,
allowNull:false,
isEmail:true
},
password:{
type:Datatypes.STRING,
allowNull:false
}},{
timestamps:false,
freezeTableName:true
})
}
Заранее спасибо ...