diff --git a/src/tests/frontend/helper.js b/src/tests/frontend/helper.js index be14e2b1..9e63cc8f 100644 --- a/src/tests/frontend/helper.js +++ b/src/tests/frontend/helper.js @@ -6,17 +6,16 @@ const helper = {}; let $iframe; const jsLibraries = {}; - helper.init = (cb) => { - $.get('../../static/js/vendors/jquery.js').done((code) => { - // make sure we don't override existing jquery - jsLibraries.jquery = `if(typeof $ === 'undefined') {\n${code}\n}`; - - $.get('lib/sendkeys.js').done((code) => { - jsLibraries.sendkeys = code; - - cb(); - }); - }); + helper.init = async () => { + [ + jsLibraries.jquery, + jsLibraries.sendkeys, + ] = await Promise.all([ + $.get('../../static/js/vendors/jquery.js'), + $.get('lib/sendkeys.js'), + ]); + // make sure we don't override existing jquery + jsLibraries.jquery = `if (typeof $ === 'undefined') {\n${jsLibraries.jquery}\n}`; }; helper.randomString = (len) => { diff --git a/src/tests/frontend/runner.js b/src/tests/frontend/runner.js index ebb956a4..c6d2d907 100644 --- a/src/tests/frontend/runner.js +++ b/src/tests/frontend/runner.js @@ -1,6 +1,8 @@ 'use strict'; -$(() => { +// $(handler), $().ready(handler), $.wait($.ready).then(handler), etc. don't work if handler is an +// async function for some bizarre reason, so the async function is wrapped in a non-async function. +$(() => (async () => { const stringifyException = (exception) => { let err = exception.stack || exception.toString(); @@ -154,15 +156,11 @@ $(() => { describe(`${desc}.js`, function () { require(spec); }); } - // initialize the test helper - helper.init(() => { - // configure and start the test framework - const grep = getURLParameter('grep'); - if (grep != null) { - mocha.grep(grep); - } - - const runner = mocha.run(); - customRunner(runner); - }); -}); + await helper.init(); + const grep = getURLParameter('grep'); + if (grep != null) { + mocha.grep(grep); + } + const runner = mocha.run(); + customRunner(runner); +})());