mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2024-12-11 17:30:44 +01:00
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
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);
|