Skip to content

Commit

Permalink
Add basic waitFor implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
rwjblue committed Dec 10, 2017
1 parent fb3e60c commit e5b13eb
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
27 changes: 27 additions & 0 deletions addon-test-support/@ember/test-helpers/dom/wait-for.js
@@ -0,0 +1,27 @@
import waitUntil from '../wait-until';
import { getContext } from '../setup-context';
import getElement from './-get-element';

/**
@method waitFor
@param {string|Element} target
@param {Object} [options]
@param {number} [options.timeout=1000]
@param {number} [options.count=1]
*/
export function waitFor(selector, { timeout = 1000, count = null } = {}) {
let callback;
if (count !== null) {
callback = () => {
let context = getContext();
let rootElement = context && context.element;
let elements = rootElement.querySelectorAll(selector);
if (elements.length === count) {
return elements;
}
};
} else {
callback = () => getElement(selector);
}
return waitUntil(callback, { timeout });
}
1 change: 1 addition & 0 deletions addon-test-support/@ember/test-helpers/index.js
Expand Up @@ -23,3 +23,4 @@ export { default as blur } from './dom/blur';
export { default as triggerEvent } from './dom/trigger-event';
export { default as triggerKeyEvent } from './dom/trigger-key-event';
export { default as fillIn } from './dom/fill-in';
export { default as waitFor } from './dom/wait-for';

0 comments on commit e5b13eb

Please sign in to comment.