Ember组件,如何等待随机jQuery插件初始化?

时间:2016-02-28 17:45:42

标签: javascript jquery ember.js ember-testing

我有一个包含随机jQuery插件的Ember组件。

setUp: on('didInsertElement', function() {
  scheduleOnce('afterRender', () => {
    this.$().datetimepicker();
  });
})

该插件大约需要250毫秒显示在屏幕上,这使我编写验收测试,如下所示:

test('clicking toggles visibility', function(assert) {
  let done = assert.async();

  visit('/');

  andThen(function() {
    assert.strictEqual(find('.xdsoft_datetimepicker:visible', 'body').length, 0);
  });

  click('.xdsoft_datetimepicker');

  setTimeout(() => {
    andThen(function() {
      assert.strictEqual(find('.xdsoft_datetimepicker:visible', 'body').length, 1);
      done();
    });
  }, 500);
});

我的目标是更改组件,以便我可以依赖click测试助手来阻止,直到jQuery元素出现在屏幕上。类似didInsertElement或运行循环等待我可以在元素在屏幕上解析的承诺之类的东西将是完美的。有这样的事吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑创建一个等待插件显示的异步等待助手,然后再继续