FIX: Color scheme stylesheet not loaded when no default theme is set.

Follow-up to 8e3691d537
This commit is contained in:
Alan Guo Xiang Tan 2021-06-21 12:44:41 +08:00
parent 7b31d8a11b
commit be655762d8
2 changed files with 14 additions and 17 deletions

View File

@ -269,23 +269,19 @@ class Stylesheet::Manager
theme = get_theme(theme_id) theme = get_theme(theme_id)
if theme builder = Builder.new(
builder = Builder.new( target: target,
target: target, theme: get_theme(theme_id),
theme: get_theme(theme_id), color_scheme: color_scheme,
color_scheme: color_scheme, manager: self
manager: self )
)
builder.compile unless File.exists?(builder.stylesheet_fullpath) builder.compile unless File.exists?(builder.stylesheet_fullpath)
href = builder.stylesheet_path(current_hostname) href = builder.stylesheet_path(current_hostname)
stylesheet[:new_href] = href stylesheet[:new_href] = href
cache.defer_set(cache_key, stylesheet.freeze) cache.defer_set(cache_key, stylesheet.freeze)
stylesheet stylesheet
else
{}
end
end end
def color_scheme_stylesheet_link_tag(color_scheme_id = nil, media = 'all') def color_scheme_stylesheet_link_tag(color_scheme_id = nil, media = 'all')

View File

@ -396,13 +396,14 @@ describe Stylesheet::Manager do
describe 'color_scheme_stylesheets' do describe 'color_scheme_stylesheets' do
it "returns something by default" do it "returns something by default" do
link = manager.color_scheme_stylesheet_link_tag link = manager.color_scheme_stylesheet_link_tag
expect(link).not_to eq("") expect(link).to include("color_definitions_base")
end end
it "does not crash when no default theme is set" do it "does not crash when no default theme is set" do
SiteSetting.default_theme_id = -1 SiteSetting.default_theme_id = -1
link = manager.color_scheme_stylesheet_link_tag link = manager.color_scheme_stylesheet_link_tag
expect(link).not_to eq("")
expect(link).to include("color_definitions_base")
end end
it "loads base scheme when defined scheme id is missing" do it "loads base scheme when defined scheme id is missing" do