mirror of
https://github.com/novnc/noVNC.git
synced 2026-05-29 16:39:40 +00:00
This runs our code in the same manner as it would be used if loaded directly in the browser. Includes the same kind of fallback for older browsers.
48 lines
1.4 KiB
JavaScript
48 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);
|