This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/public/assets/scripts/discourse-test-load-dynamic-js.js
2022-10-19 18:10:06 +01:00

35 lines
1.1 KiB
JavaScript

const dynamicJsTemplate = document.querySelector("#dynamic-test-js");
const params = new URLSearchParams(document.location.search);
const skipPlugins = params.get("qunit_skip_plugins");
(async function setup() {
for (const element of dynamicJsTemplate.content.childNodes) {
if (skipPlugins && element.dataset?.discoursePlugin) {
continue;
}
if (
element.tagName === "SCRIPT" &&
element.innerHTML.includes("EmberENV.TESTS_FILE_LOADED")
) {
// Inline script introduced by ember-cli. Incompatible with CSP and our custom plugin JS loading system
// https://github.com/ember-cli/ember-cli/blob/04a38fda2c/lib/utilities/ember-app-utils.js#L131
// We re-implement in test-boot-ember-cli.js
continue;
}
const clone = element.cloneNode(true);
if (clone.tagName === "SCRIPT") {
clone.async = false;
}
document.querySelector("discourse-dynamic-test-js").appendChild(clone);
if (clone.tagName === "LINK" && clone["rel"] === "stylesheet") {
await new Promise((resolve) => (clone.onload = resolve));
}
}
})();