From be655762d8ad4b9d29d62720ab5be12dcaac4cba Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Mon, 21 Jun 2021 12:44:41 +0800 Subject: [PATCH] FIX: Color scheme stylesheet not loaded when no default theme is set. Follow-up to 8e3691d5370bb95d99fe750f46287763721fcc9c --- lib/stylesheet/manager.rb | 26 +++++++++------------- spec/components/stylesheet/manager_spec.rb | 5 +++-- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/lib/stylesheet/manager.rb b/lib/stylesheet/manager.rb index 42f96e45535..c433f90271c 100644 --- a/lib/stylesheet/manager.rb +++ b/lib/stylesheet/manager.rb @@ -269,23 +269,19 @@ class Stylesheet::Manager theme = get_theme(theme_id) - if theme - builder = Builder.new( - target: target, - theme: get_theme(theme_id), - color_scheme: color_scheme, - manager: self - ) + builder = Builder.new( + target: target, + theme: get_theme(theme_id), + color_scheme: color_scheme, + manager: self + ) - builder.compile unless File.exists?(builder.stylesheet_fullpath) + builder.compile unless File.exists?(builder.stylesheet_fullpath) - href = builder.stylesheet_path(current_hostname) - stylesheet[:new_href] = href - cache.defer_set(cache_key, stylesheet.freeze) - stylesheet - else - {} - end + href = builder.stylesheet_path(current_hostname) + stylesheet[:new_href] = href + cache.defer_set(cache_key, stylesheet.freeze) + stylesheet end def color_scheme_stylesheet_link_tag(color_scheme_id = nil, media = 'all') diff --git a/spec/components/stylesheet/manager_spec.rb b/spec/components/stylesheet/manager_spec.rb index 7b64c8d4d5c..7efb5084533 100644 --- a/spec/components/stylesheet/manager_spec.rb +++ b/spec/components/stylesheet/manager_spec.rb @@ -396,13 +396,14 @@ describe Stylesheet::Manager do describe 'color_scheme_stylesheets' do it "returns something by default" do link = manager.color_scheme_stylesheet_link_tag - expect(link).not_to eq("") + expect(link).to include("color_definitions_base") end it "does not crash when no default theme is set" do SiteSetting.default_theme_id = -1 link = manager.color_scheme_stylesheet_link_tag - expect(link).not_to eq("") + + expect(link).to include("color_definitions_base") end it "loads base scheme when defined scheme id is missing" do