diff --git a/app/tests/helpers/wait-to-appear.js b/app/tests/helpers/wait-to-appear.js new file mode 100644 index 00000000..d700120d --- /dev/null +++ b/app/tests/helpers/wait-to-appear.js @@ -0,0 +1,22 @@ +import Ember from 'ember'; + +function isVisible(selector) { + return $(selector).length > 0; +} + +function checkVisibility(selector, interval, resolve, visibility) { + if (isVisible(selector) === visibility) { + resolve($(selector)); + } else { + console.log('waiting for visibility'); + Ember.run.later(null, function() { + checkVisibility(selector, interval, resolve, visibility); + }, interval); + } +} + +export default Ember.Test.registerAsyncHelper('waitToAppear', function(app, selector, interval = 200) { + return new Ember.RSVP.Promise(function(resolve) { + checkVisibility(selector, interval, resolve, true); + }); +});