| const TEST_REGEXP = /test\..*\.js/; |
| const allTestFiles = []; |
| const extraFiles = ['/base/tests/assertions.js']; |
| |
| Object.keys(window.__karma__.files).forEach(function (file) { |
| if (TEST_REGEXP.test(file)) { |
| // TODO: normalize? |
| allTestFiles.push(file); |
| } |
| }); |
| |
| // Stub out mocha's start function so we can run it once we're done loading |
| mocha.origRun = mocha.run; |
| mocha.run = function () {}; |
| |
| let script; |
| |
| // Script to import all our tests |
| script = document.createElement("script"); |
| script.type = "module"; |
| script.text = ""; |
| let allModules = allTestFiles.concat(extraFiles); |
| allModules.forEach(function (file) { |
| script.text += "import \"" + file + "\";\n"; |
| }); |
| script.text += "\nmocha.origRun();\n"; |
| document.body.appendChild(script); |
| |
| // Fallback code for browsers that don't support modules (IE) |
| script = document.createElement("script"); |
| script.type = "module"; |
| script.text = "window._noVNC_has_module_support = true;\n"; |
| document.body.appendChild(script); |
| |
| function fallback() { |
| if (!window._noVNC_has_module_support) { |
| /* eslint-disable no-console */ |
| if (console) { |
| console.log("No module support detected. Loading fallback..."); |
| } |
| /* eslint-enable no-console */ |
| let loader = document.createElement("script"); |
| loader.src = "base/vendor/browser-es-module-loader/dist/browser-es-module-loader.js"; |
| document.body.appendChild(loader); |
| } |
| } |
| |
| setTimeout(fallback, 500); |