Node.js Mocha测试sequalize的aftercreate()的无约束承诺?

Node.js Mocha测试sequalize的aftercreate()的无约束承诺?,node.js,unit-testing,sequelize.js,mocha.js,Node.js,Unit Testing,Sequelize.js,Mocha.js,我有一个单元测试,检查是否运行了一定数量的作业。每个模型在模型上都有一个afterCreate()钩子,用于将作业添加到名为queue的队列中,该队列包含作业运行的名称。但是,测试作业数不一致,可以返回0~3个作业。这使我相信模型不会等待钩子完成,因此与测试文件中的承诺链分离 我想知道是否有比在测试作业是否已添加之前等待几秒钟,或者附加到afterCreate()sequelize钩子以确保它首先被调用3x(有一个超时),然后运行测试逻辑更简单的解决方案 sometest.test.js con

我有一个单元测试,检查是否运行了一定数量的作业。每个模型在模型上都有一个
afterCreate()
钩子,用于将作业添加到名为
queue
的队列中,该队列包含作业运行的名称。但是,测试作业数不一致,可以返回0~3个作业。这使我相信模型不会等待钩子完成,因此与测试文件中的承诺链分离

我想知道是否有比在测试作业是否已添加之前等待几秒钟,或者附加到afterCreate()sequelize钩子以确保它首先被调用3x(有一个超时),然后运行测试逻辑更简单的解决方案

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
      });
    });
// m is a sequelize model
m.hooks.afterCreate = function(user) {
  // do some logic
    jobs.create(); // async job create
  }
};

models.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
      });
    });
// m is a sequelize model
m.hooks.afterCreate = function(user) {
  // do some logic
    jobs.create(); // async job create
  }
};