diff --git a/.eslintignore b/.eslintignore
index 3956d17380d..68b8560b4a8 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -12,7 +12,7 @@ lib/highlight_js/
plugins/**/lib/javascripts/locale
public/
vendor/
-app/assets/javascripts/discourse/tests/test-boot-rails.js
+app/assets/javascripts/discourse/tests/test_helper.js
app/assets/javascripts/discourse/tests/fixtures
node_modules/
dist/
diff --git a/.prettierignore b/.prettierignore
index 217c164e17c..3884169675c 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -20,7 +20,7 @@ lib/highlight_js/
plugins/**/lib/javascripts/locale
public/
vendor/
-app/assets/javascripts/discourse/tests/test-boot-rails.js
+app/assets/javascripts/discourse/tests/test_helper.js
app/assets/javascripts/discourse/tests/fixtures
node_modules/
dist/
diff --git a/app/assets/javascripts/discourse-common/addon/lib/debounce.js b/app/assets/javascripts/discourse-common/addon/lib/debounce.js
index dcd2693b78c..5e30864574f 100644
--- a/app/assets/javascripts/discourse-common/addon/lib/debounce.js
+++ b/app/assets/javascripts/discourse-common/addon/lib/debounce.js
@@ -11,9 +11,7 @@ let testingFunc = isLegacyEmber() ? run : next;
export default function () {
if (isTesting()) {
- // Don't include the time argument (in ms)
- let args = [].slice.call(arguments, 0, -1);
- return testingFunc.apply(void 0, args);
+ return testingFunc(...arguments);
} else {
return debounce(...arguments);
}
diff --git a/app/assets/javascripts/discourse/ember-cli-build.js b/app/assets/javascripts/discourse/ember-cli-build.js
index 602f51f189b..5125e7e08e5 100644
--- a/app/assets/javascripts/discourse/ember-cli-build.js
+++ b/app/assets/javascripts/discourse/ember-cli-build.js
@@ -37,66 +37,8 @@ module.exports = function (defaults) {
// We don't use SRI in Rails. Disable here to match:
enabled: false,
},
-
- "ember-cli-terser": {
- enabled: true,
- exclude: [
- "**/test-*.js",
- "**/core-tests*.js",
- "**/highlightjs/*",
- "**/javascripts/*",
- ],
- },
-
- // We need to build tests in prod for theme tests
- tests: true,
});
- // Patching a private method is not great, but there's no other way for us to tell
- // Ember CLI that we want the tests alone in a package without helpers/fixtures, since
- // we re-use those in the theme tests.
- app._defaultPackager.packageApplicationTests = function (tree) {
- let appTestTrees = []
- .concat(
- this.packageEmberCliInternalFiles(),
- this.packageTestApplicationConfig(),
- tree
- )
- .filter(Boolean);
-
- appTestTrees = mergeTrees(appTestTrees, {
- overwrite: true,
- annotation: "TreeMerger (appTestTrees)",
- });
-
- let tests = concat(appTestTrees, {
- inputFiles: [
- "**/tests/acceptance/*.js",
- "**/tests/integration/*.js",
- "**tests/unit/*.js",
- ],
- headerFiles: ["vendor/ember-cli/tests-prefix.js"],
- footerFiles: ["vendor/ember-cli/app-config.js"],
- outputFile: "/assets/core-tests.js",
- annotation: "Concat: Core Tests",
- sourceMapConfig: false,
- });
-
- let testHelpers = concat(appTestTrees, {
- inputFiles: [
- "**/tests/test-boot-ember-cli.js",
- "**/tests/helpers/**/*.js",
- "**/tests/fixtures/**/*.js",
- "**/tests/setup-tests.js",
- ],
- outputFile: "/assets/test-helpers.js",
- annotation: "Concat: Test Helpers",
- sourceMapConfig: false,
- });
-
- return mergeTrees([tests, testHelpers]);
- };
-
// WARNING: We should only import scripts here if they are not in NPM.
// For example: our very specific version of bootstrap-modal.
app.import(vendorJs + "bootbox.js");
diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json
index 056a33e0880..32b109253a9 100644
--- a/app/assets/javascripts/discourse/package.json
+++ b/app/assets/javascripts/discourse/package.json
@@ -34,7 +34,7 @@
"discourse-common": "^1.0.0",
"discourse-hbr": "^1.0.0",
"discourse-widget-hbs": "^1.0.0",
- "ember-auto-import": "^1.12.0",
+ "ember-auto-import": "^1.10.1",
"ember-buffered-proxy": "^2.0.0-beta.0",
"ember-cli": "~3.25.3",
"ember-cli-app-version": "^4.0.0",
diff --git a/app/assets/javascripts/discourse/public/assets/scripts/discourse-test-listen-boot.js b/app/assets/javascripts/discourse/public/assets/scripts/discourse-test-listen-boot.js
deleted file mode 100644
index 8f46890eb42..00000000000
--- a/app/assets/javascripts/discourse/public/assets/scripts/discourse-test-listen-boot.js
+++ /dev/null
@@ -1,4 +0,0 @@
-document.write(
- ""
-);
-require('discourse/tests/test-boot-ember-cli');
diff --git a/app/assets/javascripts/discourse/tests/core-tests.js b/app/assets/javascripts/discourse/tests/core_plugins_tests.js
similarity index 75%
rename from app/assets/javascripts/discourse/tests/core-tests.js
rename to app/assets/javascripts/discourse/tests/core_plugins_tests.js
index 1890b65888e..f9c99ce034e 100644
--- a/app/assets/javascripts/discourse/tests/core-tests.js
+++ b/app/assets/javascripts/discourse/tests/core_plugins_tests.js
@@ -1,3 +1,4 @@
//= require_tree ./acceptance
//= require_tree ./integration
//= require_tree ./unit
+//= require ./plugin_tests
diff --git a/app/assets/javascripts/discourse/tests/index.html b/app/assets/javascripts/discourse/tests/index.html
index 1c9ac2bb559..34c33c48e40 100644
--- a/app/assets/javascripts/discourse/tests/index.html
+++ b/app/assets/javascripts/discourse/tests/index.html
@@ -50,14 +50,9 @@
-
+
-
-
-
-
+
{{content-for "body-footer"}}
diff --git a/app/assets/javascripts/discourse/tests/plugin-tests.js.erb b/app/assets/javascripts/discourse/tests/plugin-tests.js.erb
deleted file mode 100644
index f2b38319a4a..00000000000
--- a/app/assets/javascripts/discourse/tests/plugin-tests.js.erb
+++ /dev/null
@@ -1,10 +0,0 @@
-<%
- Discourse.plugins.each do |p|
- root_path = "#{File.dirname(p.path)}/test/javascripts"
-
- to_glob = [root_path + '/**/**.es6']
- to_glob << (root_path + '/**/**.js') if p.transpile_js
-
- Dir.glob(to_glob) { |f| require_asset(f) }
- end
-%>
diff --git a/app/assets/javascripts/discourse/tests/active-plugins.js.erb b/app/assets/javascripts/discourse/tests/plugin_tests.js.erb
similarity index 53%
rename from app/assets/javascripts/discourse/tests/active-plugins.js.erb
rename to app/assets/javascripts/discourse/tests/plugin_tests.js.erb
index 6b2958541e9..0bb267961df 100644
--- a/app/assets/javascripts/discourse/tests/active-plugins.js.erb
+++ b/app/assets/javascripts/discourse/tests/plugin_tests.js.erb
@@ -8,4 +8,13 @@
require_asset(f)
end
end
+
+ Discourse.plugins.each do |p|
+ root_path = "#{File.dirname(p.path)}/test/javascripts"
+
+ to_glob = [root_path + '/**/**.es6']
+ to_glob << (root_path + '/**/**.js') if p.transpile_js
+
+ Dir.glob(to_glob) { |f| require_asset(f) }
+ end
%>
diff --git a/app/assets/javascripts/discourse/tests/test-boot-ember-cli.js b/app/assets/javascripts/discourse/tests/test-helper.js
similarity index 96%
rename from app/assets/javascripts/discourse/tests/test-boot-ember-cli.js
rename to app/assets/javascripts/discourse/tests/test-helper.js
index cfbc0b9ff8c..ffb266b9724 100644
--- a/app/assets/javascripts/discourse/tests/test-boot-ember-cli.js
+++ b/app/assets/javascripts/discourse/tests/test-helper.js
@@ -34,4 +34,3 @@ document.addEventListener("discourse-booted", () => {
setupEmberOnerrorValidation: !skippingCore,
});
});
-window.EmberENV.TESTS_FILE_LOADED = true;
diff --git a/app/assets/javascripts/discourse/tests/test_helper.js b/app/assets/javascripts/discourse/tests/test_helper.js
new file mode 100644
index 00000000000..028f3a5167f
--- /dev/null
+++ b/app/assets/javascripts/discourse/tests/test_helper.js
@@ -0,0 +1,38 @@
+// discourse-skip-module
+
+//= require env
+//= require jquery.debug
+//= require jquery.ui.widget
+//= require ember.debug
+//= require message-bus
+//= require qunit
+//= require ember-qunit
+//= require fake_xml_http_request
+//= require route-recognizer
+//= require pretender
+//= require locales/i18n
+//= require locales/en
+//= require discourse-loader
+
+// Our base application
+//= require vendor
+//= require discourse-shims
+//= require markdown-it-bundle
+//= require application
+//= require admin
+
+// These are not loaded in prod or development
+// But we need them for testing handlebars templates in qunit
+//= require handlebars
+//= require ember-template-compiler
+
+// Test helpers
+//= require sinon
+//= require_tree ./helpers
+//= require break_string
+
+//= require_tree ./fixtures
+
+//= require ./setup-tests
+//= require test-shims
+//= require jquery.magnific-popup.min.js
diff --git a/app/assets/javascripts/discourse/tests/test-helpers-rails.js b/app/assets/javascripts/discourse/tests/theme_qunit_helper.js
similarity index 82%
rename from app/assets/javascripts/discourse/tests/test-helpers-rails.js
rename to app/assets/javascripts/discourse/tests/theme_qunit_helper.js
index 71bb2c44530..a9c60c90f9e 100644
--- a/app/assets/javascripts/discourse/tests/test-helpers-rails.js
+++ b/app/assets/javascripts/discourse/tests/theme_qunit_helper.js
@@ -3,3 +3,4 @@
//= require_tree ./helpers
//= require_tree ./fixtures
//= require ./setup-tests
+//= require test-shims
diff --git a/app/assets/javascripts/discourse/tests/test-support-rails.js b/app/assets/javascripts/discourse/tests/theme_qunit_tests_vendor.js
similarity index 69%
rename from app/assets/javascripts/discourse/tests/test-support-rails.js
rename to app/assets/javascripts/discourse/tests/theme_qunit_tests_vendor.js
index 4f916572efc..3c6865b1e04 100644
--- a/app/assets/javascripts/discourse/tests/test-support-rails.js
+++ b/app/assets/javascripts/discourse/tests/theme_qunit_tests_vendor.js
@@ -5,10 +5,11 @@
//= require fake_xml_http_request
//= require route-recognizer
//= require pretender
-//= require sinon
-//= require break_string
-//= require test-shims
-//= require jquery.magnific-popup.min.js
+
+// These are not loaded in prod or development
+// But we need them for testing handlebars templates in qunit
//= require handlebars
//= require ember-template-compiler
-//= require markdown-it-bundle
+
+//= require sinon
+//= require break_string
diff --git a/app/assets/javascripts/discourse/tests/theme_qunit_vendor.js b/app/assets/javascripts/discourse/tests/theme_qunit_vendor.js
new file mode 100644
index 00000000000..9eb492b917d
--- /dev/null
+++ b/app/assets/javascripts/discourse/tests/theme_qunit_vendor.js
@@ -0,0 +1,30 @@
+// This bundle contains the same dependencies as app/assets/javascripts/vendor.js
+// minus ember_jquery.
+// ember_jquery doesn't work with theme tests in production because it
+// contains production builds of Ember and jQuery, so we have a separate bundle
+// caled theme_qunit_ember_jquery which contains a debug build for Ember and jQuery.
+// We don't put theme_qunit_ember_jquery in this bundle because it would make the
+// bundle too big and cause OOM exceptions during rebuilds for self-hosters on
+// low-end machines.
+
+//= require logster
+
+//= require template_include.js
+
+//= require message-bus
+//= require jquery.ui.widget.js
+//= require Markdown.Converter.js
+//= require bootbox.js
+//= require popper.js
+//= require bootstrap-modal.js
+//= require caret_position
+//= require jquery.sortable.js
+//= require lodash.js
+//= require itsatrap.js
+//= require rsvp.js
+//= require uppy.js
+//= require buffered-proxy
+//= require virtual-dom
+//= require virtual-dom-amd
+//= require discourse-shims
+//= require pretty-text-bundle
diff --git a/app/assets/javascripts/ember_include.js.erb b/app/assets/javascripts/ember_include.js.erb
index 9bb1c0c59ae..df7a68817ec 100644
--- a/app/assets/javascripts/ember_include.js.erb
+++ b/app/assets/javascripts/ember_include.js.erb
@@ -1,5 +1,5 @@
<%
-if @force_ember_debug || Rails.env.development? || Rails.env.test?
+if Rails.env.development? || Rails.env.test?
require_asset ("ember.debug.js")
else
require_asset ("ember.prod.js")
diff --git a/app/assets/javascripts/vendor-common.js b/app/assets/javascripts/vendor-common.js
deleted file mode 100644
index 9ce43717d4c..00000000000
--- a/app/assets/javascripts/vendor-common.js
+++ /dev/null
@@ -1,21 +0,0 @@
-//= require logster
-
-//= require template_include.js
-
-//= require message-bus
-//= require jquery.ui.widget.js
-//= require Markdown.Converter.js
-//= require bootbox.js
-//= require popper.js
-//= require bootstrap-modal.js
-//= require caret_position
-//= require jquery.sortable.js
-//= require lodash.js
-//= require itsatrap.js
-//= require rsvp.js
-//= require uppy.js
-//= require buffered-proxy
-//= require virtual-dom
-//= require virtual-dom-amd
-//= require discourse-shims
-//= require pretty-text-bundle
diff --git a/app/assets/javascripts/vendor-theme-tests.js b/app/assets/javascripts/vendor-theme-tests.js
deleted file mode 100644
index 0c7aa8c1364..00000000000
--- a/app/assets/javascripts/vendor-theme-tests.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//= require set-prototype-polyfill
-//= require env
-//= require jquery
-//= require ember.debug.js
-//= require discourse-loader
-//= require vendor-common
diff --git a/app/assets/javascripts/vendor.js b/app/assets/javascripts/vendor.js
index 7ec26b1ca4f..fb49d750d58 100644
--- a/app/assets/javascripts/vendor.js
+++ b/app/assets/javascripts/vendor.js
@@ -1,2 +1,23 @@
//= require ember_jquery
-//= require vendor-common
+
+//= require logster
+
+//= require template_include.js
+
+//= require message-bus
+//= require jquery.ui.widget.js
+//= require Markdown.Converter.js
+//= require bootbox.js
+//= require popper.js
+//= require bootstrap-modal.js
+//= require caret_position
+//= require jquery.sortable.js
+//= require lodash.js
+//= require itsatrap.js
+//= require rsvp.js
+//= require uppy.js
+//= require buffered-proxy
+//= require virtual-dom
+//= require virtual-dom-amd
+//= require discourse-shims
+//= require pretty-text-bundle
diff --git a/app/assets/javascripts/yarn.lock b/app/assets/javascripts/yarn.lock
index 80a80588c24..691b5eea85e 100644
--- a/app/assets/javascripts/yarn.lock
+++ b/app/assets/javascripts/yarn.lock
@@ -4810,41 +4810,6 @@ ember-auto-import@^1.10.1, ember-auto-import@^1.5.3:
walk-sync "^0.3.3"
webpack "^4.43.0"
-ember-auto-import@^1.12.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.12.0.tgz#52246b04891090e2608244e65c4c6af7710df12b"
- integrity sha512-fzMGnyHGfUNFHchpLbJ98Vs/c5H2wZBMR9r/XwW+WOWPisZDGLUPPyhJQsSREPoUQ+o8GvyLaD/rkrKqW8bmgw==
- dependencies:
- "@babel/core" "^7.1.6"
- "@babel/preset-env" "^7.10.2"
- "@babel/traverse" "^7.1.6"
- "@babel/types" "^7.1.6"
- "@embroider/core" "^0.33.0"
- babel-core "^6.26.3"
- babel-loader "^8.0.6"
- babel-plugin-syntax-dynamic-import "^6.18.0"
- babylon "^6.18.0"
- broccoli-debug "^0.6.4"
- broccoli-node-api "^1.7.0"
- broccoli-plugin "^4.0.0"
- broccoli-source "^3.0.0"
- debug "^3.1.0"
- ember-cli-babel "^7.0.0"
- enhanced-resolve "^4.0.0"
- fs-extra "^6.0.1"
- fs-tree-diff "^2.0.0"
- handlebars "^4.3.1"
- js-string-escape "^1.0.1"
- lodash "^4.17.19"
- mkdirp "^0.5.1"
- resolve-package-path "^3.1.0"
- rimraf "^2.6.2"
- semver "^7.3.4"
- symlink-or-copy "^1.2.0"
- typescript-memoize "^1.0.0-alpha.3"
- walk-sync "^0.3.3"
- webpack "^4.43.0"
-
ember-buffered-proxy@^2.0.0-beta.0:
version "2.0.0-beta.0"
resolved "https://registry.yarnpkg.com/ember-buffered-proxy/-/ember-buffered-proxy-2.0.0-beta.0.tgz#65be4e2d0dcf40a5a2dab548c84a21aa332555a2"
diff --git a/app/controllers/bootstrap_controller.rb b/app/controllers/bootstrap_controller.rb
index af3919e8285..811058d7526 100644
--- a/app/controllers/bootstrap_controller.rb
+++ b/app/controllers/bootstrap_controller.rb
@@ -69,7 +69,7 @@ class BootstrapController < ApplicationController
locale_script: locale,
stylesheets: @stylesheets,
plugin_js: plugin_js,
- plugin_test_js: [script_asset_path("plugin-tests")],
+ plugin_test_js: [script_asset_path("plugin_tests")],
setup_data: client_side_setup_data,
preloaded: @preloaded,
html: create_html,
diff --git a/app/controllers/qunit_controller.rb b/app/controllers/qunit_controller.rb
index 003b3430245..309d2af8b20 100644
--- a/app/controllers/qunit_controller.rb
+++ b/app/controllers/qunit_controller.rb
@@ -8,32 +8,15 @@ class QunitController < ApplicationController
}
layout false
- def is_ember_cli_proxy?
- request.headers["HTTP_X_DISCOURSE_EMBER_CLI"] == "true"
- end
-
# only used in test / dev
def index
- raise Discourse::NotFound.new if is_ember_cli_proxy?
+ raise Discourse::NotFound.new if request.headers["HTTP_X_DISCOURSE_EMBER_CLI"] == "true"
raise Discourse::InvalidAccess.new if Rails.env.production?
end
def theme
raise Discourse::NotFound.new if !can_see_theme_qunit?
- @is_proxied = is_ember_cli_proxy?
- @legacy_ember = if Rails.env.production?
- ENV['EMBER_CLI_PROD_ASSETS'] != "1"
- else
- !@is_proxied
- end
-
- # In production mode all bundles use `application`
- @app_bundle = "application"
- if Rails.env.development? && @is_proxied
- @app_bundle = "discourse"
- end
-
param_key = nil
@suggested_themes = nil
if (id = get_param(:id)).present?
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index f232bd5b7e5..c5a96271231 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -13,11 +13,9 @@ module ApplicationHelper
@extra_body_classes ||= Set.new
end
- def discourse_config_environment(testing: false)
-
+ def discourse_config_environment
# TODO: Can this come from Ember CLI somehow?
- config = {
- modulePrefix: "discourse",
+ { modulePrefix: "discourse",
environment: Rails.env,
rootURL: Discourse.base_path,
locationType: "auto",
@@ -34,16 +32,7 @@ module ApplicationHelper
version: "#{Discourse::VERSION::STRING} #{Discourse.git_version}",
exportApplicationGlobal: true
}
- }
-
- if testing
- config[:environment] = "test"
- config[:locationType] = "none"
- config[:APP][:autoboot] = false
- config[:APP][:rootElement] = '#ember-testing'
- end
-
- config.to_json
+ }.to_json
end
def google_universal_analytics_json(ua_domain_name = nil)
diff --git a/app/helpers/qunit_helper.rb b/app/helpers/qunit_helper.rb
index 9dec03aa213..e0376a1ad26 100644
--- a/app/helpers/qunit_helper.rb
+++ b/app/helpers/qunit_helper.rb
@@ -1,38 +1,6 @@
# frozen_string_literal: true
module QunitHelper
-
- def vendor_theme_tests
- return preload_script("vendor-theme-tests") if @legacy_ember
- preload_script("vendor")
- end
-
- def support_bundles
- result = []
- if Rails.env.production? || @legacy_ember
- result << preload_script("discourse/tests/test-support-rails")
- result << preload_script("discourse/tests/test-helpers-rails")
- else
- result << preload_script("test-support")
- result << preload_script("test-helpers")
- end
- result.join("\n").html_safe
- end
-
- def boot_bundles
- result = []
- if @legacy_ember
- result << preload_script("discourse/tests/test_starter")
- elsif @is_proxied
- result << preload_script("scripts/discourse-test-listen-boot")
- result << preload_script("scripts/discourse-boot")
- else
- result << preload_script("discourse-test-listen-boot")
- result << preload_script("discourse-boot")
- end
- result.join("\n").html_safe
- end
-
def theme_tests
theme = Theme.find_by(id: request.env[:resolved_theme_id])
return "" if theme.blank?
diff --git a/app/views/qunit/index.html.erb b/app/views/qunit/index.html.erb
index 9912387a2d7..830e3d8bb50 100644
--- a/app/views/qunit/index.html.erb
+++ b/app/views/qunit/index.html.erb
@@ -5,15 +5,8 @@
<%= discourse_color_scheme_stylesheets %>
<%= discourse_stylesheet_link_tag(:desktop, theme_id: nil) %>
<%= discourse_stylesheet_link_tag(:test_helper, theme_id: nil) %>
- <%= preload_script "locales/#{I18n.locale}" %>
- <%= preload_script "vendor" %>
- <%= preload_script "application" %>
- <%= preload_script "admin" %>
- <%= preload_script "discourse/tests/test-support-rails" %>
- <%= preload_script "discourse/tests/test-helpers-rails" %>
- <%= preload_script "discourse/tests/active-plugins" %>
- <%= preload_script "discourse/tests/core-tests" %>
- <%= preload_script "discourse/tests/plugin-tests" %>
+ <%= preload_script "discourse/tests/test_helper" %>
+ <%= preload_script "discourse/tests/core_plugins_tests" %>
<%= preload_script "discourse/tests/test_starter" %>
<%= csrf_meta_tags %>
diff --git a/app/views/qunit/theme.html.erb b/app/views/qunit/theme.html.erb
index 30b9f1260f5..53752cc9a29 100644
--- a/app/views/qunit/theme.html.erb
+++ b/app/views/qunit/theme.html.erb
@@ -6,12 +6,17 @@
<%- if !@suggested_themes %>
<%= discourse_stylesheet_link_tag(:desktop, theme_id: nil) %>
<%= discourse_stylesheet_link_tag(:test_helper, theme_id: nil) %>
- <%= preload_script "locales/#{I18n.locale}" %>
- <%= vendor_theme_tests %>
- <%= preload_script @app_bundle %>
+ <%= preload_script "locales/en" %>
+ <%= preload_script "discourse/tests/theme_qunit_ember_jquery" %>
+ <%= preload_script "discourse/tests/theme_qunit_vendor" %>
+ <%= preload_script "discourse/tests/theme_qunit_tests_vendor" %>
+ <%= preload_script "markdown-it-bundle" %>
+ <%= preload_script "application" %>
+ <%- Discourse.find_plugin_js_assets(include_official: allow_plugins?, include_unofficial: allow_third_party_plugins?, request: request).each do |file| %>
+ <%= preload_script file %>
+ <%- end %>
<%= preload_script "admin" %>
- <%= preload_script "discourse/tests/active-plugins" %>
- <%= support_bundles %>
+ <%= preload_script "discourse/tests/theme_qunit_helper" %>
<%= theme_translations_lookup %>
<%= theme_js_lookup %>
<%= theme_lookup("head_tag") %>
@@ -19,7 +24,7 @@
<%= tag.meta id: 'data-discourse-setup', data: client_side_setup_data %>
-
+ <%= preload_script "discourse/tests/test_starter" %>
<%- else %>