mirror of
https://github.com/discourse/discourse.git
synced 2024-12-04 05:43:44 +08:00
4f88f2eb15
This commit allows site admins to run theme tests in production via a new `/theme-qunit` route. When you visit `/theme-qunit`, you'll see a list of the themes/components installed on your site that have tests, and from there you can select a theme or component that you run its tests. We also have a new rake task `themes:install_and_test` that can be used to install a list of themes/components on a temporary database and run the tests of the themes/components that are installed. This rake task can be useful when upgrading/deploying a Discourse instance to make sure that the installed themes/components are compatible with the new Discourse version being deployed, and if the tests fail you can abort the build/deploy process so you don't end up with a broken site.
68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
// discourse-skip-module
|
|
/*global document, Logster, QUnit */
|
|
|
|
//= require env
|
|
//= require jquery.debug
|
|
//= require ember.debug
|
|
//= require locales/i18n
|
|
//= require locales/en
|
|
//= require route-recognizer
|
|
//= require fake_xml_http_request
|
|
//= require pretender
|
|
//= require qunit
|
|
//= require ember-qunit
|
|
//= require discourse-loader
|
|
//= require jquery.debug
|
|
//= require handlebars
|
|
//= require ember-template-compiler
|
|
//= require wizard-application
|
|
//= require wizard-vendor
|
|
//= require_tree ./helpers
|
|
//= require_tree ./acceptance
|
|
//= require_tree ./models
|
|
//= require_tree ./components
|
|
//= require ./wizard-pretender
|
|
//= require test-shims
|
|
|
|
// Trick JSHint into allow document.write
|
|
let d = document;
|
|
d.write(
|
|
'<div id="ember-testing-container"><div id="ember-testing"></div></div>'
|
|
);
|
|
d.write(
|
|
"<style>#ember-testing-container { position: absolute; background: white; bottom: 0; right: 0; width: 640px; height: 384px; overflow: auto; z-index: 9999; border: 1px solid #ccc; } #ember-testing { zoom: 50%; }</style>"
|
|
);
|
|
|
|
if (window.Logster) {
|
|
Logster.enabled = false;
|
|
} else {
|
|
window.Logster = { enabled: false };
|
|
}
|
|
Ember.Test.adapter = window.QUnitAdapter.create();
|
|
|
|
let createPretendServer = requirejs(
|
|
"wizard/test/wizard-pretender",
|
|
null,
|
|
null,
|
|
false
|
|
).default;
|
|
|
|
let server;
|
|
QUnit.testStart(function () {
|
|
server = createPretendServer();
|
|
});
|
|
|
|
QUnit.testDone(function () {
|
|
server.shutdown();
|
|
});
|
|
|
|
let _testApp = requirejs("wizard/test/helpers/start-app").default();
|
|
let _buildResolver = requirejs("discourse-common/resolver").buildResolver;
|
|
window.setResolver(_buildResolver("wizard").create({ namespace: _testApp }));
|
|
|
|
Object.keys(requirejs.entries).forEach(function (entry) {
|
|
if (/\-test/.test(entry)) {
|
|
requirejs(entry, null, null, true);
|
|
}
|
|
});
|