mirror of
https://github.com/discourse/discourse.git
synced 2025-02-08 04:18:23 +00:00
DEV: Add plugin-related parameters to the QUnit web UI
This commit also hides a number of options which are not used during Discourse development. Change have been tested on both the legacy `/qunit` route, and the Ember CLI `/tests` route.
This commit is contained in:
parent
402162e18a
commit
4bdeb45727
@ -81,14 +81,50 @@ function createApplication(config, settings) {
|
|||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupToolbar() {
|
||||||
|
// Most default toolbar items aren't useful for Discourse
|
||||||
|
QUnit.config.urlConfig = QUnit.config.urlConfig.reject((c) =>
|
||||||
|
[
|
||||||
|
"noglobals",
|
||||||
|
"notrycatch",
|
||||||
|
"nolint",
|
||||||
|
"devmode",
|
||||||
|
"dockcontainer",
|
||||||
|
"nocontainer",
|
||||||
|
].includes(c.id)
|
||||||
|
);
|
||||||
|
|
||||||
|
QUnit.config.urlConfig.push({
|
||||||
|
id: "qunit_skip_core",
|
||||||
|
label: "Skip Core",
|
||||||
|
value: "1",
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.config.urlConfig.push({
|
||||||
|
id: "qunit_skip_plugins",
|
||||||
|
label: "Skip Plugins",
|
||||||
|
value: "1",
|
||||||
|
});
|
||||||
|
|
||||||
|
const pluginNames = new Set();
|
||||||
|
|
||||||
|
Object.keys(requirejs.entries).forEach((moduleName) => {
|
||||||
|
const found = moduleName.match(/\/plugins\/([\w-]+)\//);
|
||||||
|
if (found && moduleName.match(/\-test/)) {
|
||||||
|
pluginNames.add(found[1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.config.urlConfig.push({
|
||||||
|
id: "qunit_single_plugin",
|
||||||
|
label: "Plugin",
|
||||||
|
value: Array.from(pluginNames),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function setupTestsCommon(application, container, config) {
|
function setupTestsCommon(application, container, config) {
|
||||||
QUnit.config.hidepassed = true;
|
QUnit.config.hidepassed = true;
|
||||||
|
|
||||||
// Let's customize QUnit options a bit
|
|
||||||
QUnit.config.urlConfig = QUnit.config.urlConfig.filter(
|
|
||||||
(c) => ["dockcontainer", "nocontainer"].indexOf(c.id) === -1
|
|
||||||
);
|
|
||||||
|
|
||||||
application.rootElement = "#ember-testing";
|
application.rootElement = "#ember-testing";
|
||||||
application.setupForTesting();
|
application.setupForTesting();
|
||||||
application.injectTestHelpers();
|
application.injectTestHelpers();
|
||||||
@ -315,6 +351,7 @@ function setupTestsCommon(application, container, config) {
|
|||||||
// forces 0 as duration for all jquery animations
|
// forces 0 as duration for all jquery animations
|
||||||
jQuery.fx.off = true;
|
jQuery.fx.off = true;
|
||||||
|
|
||||||
|
setupToolbar();
|
||||||
setApplication(application);
|
setApplication(application);
|
||||||
setDefaultOwner(application.__container__);
|
setDefaultOwner(application.__container__);
|
||||||
resetSite();
|
resetSite();
|
||||||
@ -347,5 +384,17 @@ function replaceUrlParameter(name, value) {
|
|||||||
} else {
|
} else {
|
||||||
queryParams.set(name, value);
|
queryParams.set(name, value);
|
||||||
}
|
}
|
||||||
window.location = "?" + queryParams.toString();
|
history.replaceState(null, null, "?" + queryParams.toString());
|
||||||
|
|
||||||
|
QUnit.begin(() => {
|
||||||
|
QUnit.config[name] = value;
|
||||||
|
const formElement = document.querySelector(
|
||||||
|
`#qunit-testrunner-toolbar [name=${name}]`
|
||||||
|
);
|
||||||
|
if (formElement?.type === "checkbox") {
|
||||||
|
formElement.checked = !!value;
|
||||||
|
} else if (formElement) {
|
||||||
|
formElement.value = value;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user