discourse/app/views/qunit/theme.html.erb
David Taylor c62a4a4759
PERF: Compile main locale bundles just-in-time (#32335)
Previously all locale bundles would be built & compressed during
assets:precompile. For most sites, only one of these languages was
actually used, so this is fairly wasteful.

This commit moves the main locale bundle into the
ExtraLocalesController, which has recently undergone many improvements
to make it more efficient. This allows locale files to be bundled "just
in time" when they're first accessed.

Now that brotli level=6 is enabled for these assets in our nginx config,
this change should have no impact on the locale bundle size.
2025-04-28 10:31:27 +01:00

69 lines
2.4 KiB
Text
Vendored

<!DOCTYPE html>
<html>
<head>
<title>Theme QUnit Test Runner</title>
<%= discourse_color_scheme_stylesheets %>
<meta name="color-scheme" content="light dark">
<%- if @has_test_bundle && !@suggested_themes %>
<%= preload_script "vendor" %>
<%= preload_script "test-support" %>
<%= preload_script "discourse" %>
<%= preload_script "test" %>
<%= preload_script_url ExtraLocalesController.url("main") %>
<%= preload_script_url ExtraLocalesController.url("mf") %>
<%= preload_script "admin" %>
<%- Discourse.find_plugin_js_assets(include_disabled: true).each do |file| %>
<%= preload_script file %>
<%- end %>
<%= preload_script "test-site-settings" %>
<%= theme_translations_lookup %>
<%= theme_js_lookup %>
<%= theme_lookup("head_tag") %>
<%= theme_tests %>
<%= tag.meta id: 'data-discourse-setup', data: client_side_setup_data %>
<meta property="og:title" content="">
<meta property="og:url" content="">
<meta name="discourse/config/environment" content="<%=u discourse_config_environment(testing: true) %>" />
<style>
<%= File.read("#{Rails.root}/app/assets/javascripts/discourse/node_modules/qunit/qunit/qunit.css").html_safe %>
</style>
<%= discourse_stylesheet_link_tag(:desktop, theme_id: nil) %>
<%- else %>
<style>
html {
font-family: Arial;
}
</style>
<%- end %>
<%- if params['testem'] %>
<script defer src="/assets/testem.js" nonce="<%= csp_nonce_placeholder %>"></script>
<%- end %>
</head>
<body>
<%- if !@has_test_bundle %>
This is a production installation of Discourse, and cannot be used for theme testing.
For more information, see <a href="https://meta.discourse.org/t/66857">this guide</a>.
<% elsif @suggested_themes %>
<h2>Theme QUnit Test Runner</h2>
<%- if @suggested_themes.empty? %>
<p>Cannot find any theme tests.</p>
<%- else %>
<h3>Select a theme/component: </h3>
<%- @suggested_themes.each do |(id, name)| %>
<h4><%= link_to name, theme_qunit_path(id: id) %></h4>
<%- end %>
<%- end %>
<% else %>
<%= preload_script "scripts/discourse-test-listen-boot" %>
<%= preload_script "scripts/discourse-boot" %>
<%- end %>
<%= discourse_stylesheet_link_tag("qunit-custom", theme_id: nil) %>
</body>
</html>