如何解决摩卡从 sequalize 测试来自 aftercreate() 的未链接的承诺?
我有一个单元测试来检查是否已经运行了一定数量的作业。每个模型在模型上都有一个 afterCreate()
挂钩,用于将作业添加到名为 queue
的队列中,该队列包含作业运行的名称。但是测试job数量不一致,可以返回0~3个job。这让我相信模型不会等待钩子结束,从而与测试文件中的承诺链分开。
我想知道是否有比在测试作业是否已添加之前等待几秒钟或附加到 afterCreate() 续集钩子以确保它首先被调用 3 次(使用一个超时)然后运行测试逻辑。
sometest.test.js
const expect = require('chai').expect;
it('some unit test',function() {
return models.Person.create({
name: 'Bob'
})
.then(function(person) {
return models.Profile.create({
profile_id: person.id
});
})
.then(function(item) {
return item.update({
purchased: 'something'
});
})
.then(function() {
expect(queue.job.length).to.equal(3);
// check if queue.job contains certain job names
});
});
models.js
// m is a sequelize model
m.hooks.afterCreate = function(user) {
// do some logic
jobs.create(); // async job create
}
};
node: v12
"sequelize": "5.22.3","mocha": "7.2.0","chai": "4.3.4"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。