mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 14:25:08 +08:00
FEATURE: Allow theme tests to be run in production (#12815)
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.
This commit is contained in:
@ -45,13 +45,14 @@ task "qunit:test", [:timeout, :qunit_path] do |_, args|
|
||||
|
||||
pid = Process.spawn(
|
||||
{
|
||||
"RAILS_ENV" => "test",
|
||||
"RAILS_ENV" => ENV["QUNIT_RAILS_ENV"] || "test",
|
||||
"SKIP_ENFORCE_HOSTNAME" => "1",
|
||||
"UNICORN_PID_PATH" => "#{Rails.root}/tmp/pids/unicorn_test_#{port}.pid", # So this can run alongside development
|
||||
"UNICORN_PORT" => port.to_s,
|
||||
"UNICORN_SIDEKIQS" => "0"
|
||||
},
|
||||
"#{Rails.root}/bin/unicorn -c config/unicorn.conf.rb"
|
||||
"#{Rails.root}/bin/unicorn -c config/unicorn.conf.rb",
|
||||
pgroup: true
|
||||
)
|
||||
|
||||
begin
|
||||
@ -61,7 +62,7 @@ task "qunit:test", [:timeout, :qunit_path] do |_, args|
|
||||
cmd = "node #{test_path}/run-qunit.js http://localhost:#{port}#{qunit_path}"
|
||||
options = { seed: (ENV["QUNIT_SEED"] || Random.new.seed), hidepassed: 1 }
|
||||
|
||||
%w{module filter qunit_skip_core qunit_single_plugin theme_name theme_url}.each do |arg|
|
||||
%w{module filter qunit_skip_core qunit_single_plugin theme_name theme_url theme_id}.each do |arg|
|
||||
options[arg] = ENV[arg.upcase] if ENV[arg.upcase].present?
|
||||
end
|
||||
|
||||
@ -108,7 +109,7 @@ task "qunit:test", [:timeout, :qunit_path] do |_, args|
|
||||
|
||||
ensure
|
||||
# was having issues with HUP
|
||||
Process.kill "KILL", pid
|
||||
Process.kill "-KILL", pid
|
||||
FileUtils.rm("#{Rails.root}/tmp/pids/unicorn_test_#{port}.pid")
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user