0
我有一個Ember組件包裝一個隨機jQuery插件。Ember組件,如何等待隨機jQuery插件初始化?
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
或運行循環等待承諾,我可以解決一旦元素在屏幕上將是完美的。有這樣的事嗎?
已經完成[這裏](https://github.com/kellyselden/ember-datetimepicker/blob/master/tests顯示/helpers/wait-for.js),但要求我的插件的任何消費者也有這個幫助器,以便在他們的測試中點擊組件。這就是爲什麼我希望把它燒成組件。 –