mirror of
https://github.com/discourse/discourse.git
synced 2025-05-29 00:37:44 +08:00
FEATURE: Allow theme tests to be run in production (take 2) (#12845)
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:
@ -865,4 +865,41 @@ HTML
|
||||
end
|
||||
end
|
||||
|
||||
describe "#baked_js_tests_with_digest" do
|
||||
before do
|
||||
ThemeField.create!(
|
||||
theme_id: theme.id,
|
||||
target_id: Theme.targets[:settings],
|
||||
name: "yaml",
|
||||
value: "some_number: 1"
|
||||
)
|
||||
theme.set_field(
|
||||
target: :tests_js,
|
||||
type: :js,
|
||||
name: "acceptance/some-test.js",
|
||||
value: "assert.ok(true);"
|
||||
)
|
||||
theme.save!
|
||||
end
|
||||
|
||||
it 'returns nil for content and digest if theme does not have tests' do
|
||||
ThemeField.destroy_all
|
||||
expect(theme.baked_js_tests_with_digest).to eq([nil, nil])
|
||||
end
|
||||
|
||||
it 'digest does not change when settings are changed' do
|
||||
content, digest = theme.baked_js_tests_with_digest
|
||||
expect(content).to be_present
|
||||
expect(digest).to be_present
|
||||
expect(content).to include("assert.ok(true);")
|
||||
|
||||
theme.update_setting(:some_number, 55)
|
||||
theme.save!
|
||||
expect(theme.build_settings_hash[:some_number]).to eq(55)
|
||||
|
||||
new_content, new_digest = theme.baked_js_tests_with_digest
|
||||
expect(new_content).to eq(content)
|
||||
expect(new_digest).to eq(digest)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user