mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Add simple digest for core stylesheets
And move fonts + category_backgrounds to color definitions stylesheet. This will let us use the same core + plugin stylesheets in multisite.
This commit is contained in:
committed by
Alan Guo Xiang Tan
parent
e123476329
commit
d82c58e6cc
@@ -11,19 +11,16 @@ describe Stylesheet::Importer do
|
||||
|
||||
context "#category_backgrounds" do
|
||||
it "applies CDN to background category images" do
|
||||
expect(compile_css("mobile")).to_not include("body.category-")
|
||||
expect(compile_css("desktop")).to_not include("body.category-")
|
||||
expect(compile_css("color_definitions")).to_not include("body.category-")
|
||||
|
||||
background = Fabricate(:upload)
|
||||
parent_category = Fabricate(:category)
|
||||
category = Fabricate(:category, parent_category_id: parent_category.id, uploaded_background: background)
|
||||
|
||||
expect(compile_css("mobile")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(#{background.url})}")
|
||||
expect(compile_css("desktop")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(#{background.url})}")
|
||||
expect(compile_css("color_definitions")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(#{background.url})}")
|
||||
|
||||
GlobalSetting.stubs(:cdn_url).returns("//awesome.cdn")
|
||||
expect(compile_css("mobile")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(//awesome.cdn#{background.url})}")
|
||||
expect(compile_css("desktop")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(//awesome.cdn#{background.url})}")
|
||||
expect(compile_css("color_definitions")).to include("body.category-#{parent_category.slug}-#{category.slug}{background-image:url(//awesome.cdn#{background.url})}")
|
||||
end
|
||||
|
||||
it "applies S3 CDN to background category images" do
|
||||
@@ -36,8 +33,7 @@ describe Stylesheet::Importer do
|
||||
background = Fabricate(:upload_s3)
|
||||
category = Fabricate(:category, uploaded_background: background)
|
||||
|
||||
expect(compile_css("mobile")).to include("body.category-#{category.slug}{background-image:url(https://s3.cdn/original")
|
||||
expect(compile_css("desktop")).to include("body.category-#{category.slug}{background-image:url(https://s3.cdn/original")
|
||||
expect(compile_css("color_definitions")).to include("body.category-#{category.slug}{background-image:url(https://s3.cdn/original")
|
||||
end
|
||||
|
||||
end
|
||||
@@ -45,8 +41,7 @@ describe Stylesheet::Importer do
|
||||
context "#font" do
|
||||
it "includes font variable" do
|
||||
default_font = ":root{--font-family: Arial, sans-serif}"
|
||||
expect(compile_css("desktop")).to include(default_font)
|
||||
expect(compile_css("mobile")).to include(default_font)
|
||||
expect(compile_css("color_definitions")).to include(default_font)
|
||||
expect(compile_css("embed")).to include(default_font)
|
||||
expect(compile_css("publish")).to include(default_font)
|
||||
end
|
||||
@@ -58,14 +53,14 @@ describe Stylesheet::Importer do
|
||||
SiteSetting.base_font = base_font[:key]
|
||||
SiteSetting.heading_font = heading_font[:key]
|
||||
|
||||
expect(compile_css("desktop"))
|
||||
expect(compile_css("color_definitions"))
|
||||
.to include(":root{--font-family: #{base_font[:stack]}}")
|
||||
.and include(":root{--heading-font-family: #{heading_font[:stack]}}")
|
||||
|
||||
set_cdn_url("http://cdn.localhost")
|
||||
|
||||
# uses CDN and includes cache-breaking param
|
||||
expect(compile_css("mobile"))
|
||||
expect(compile_css("color_definitions"))
|
||||
.to include("http://cdn.localhost/fonts/#{base_font[:variants][0][:filename]}?v=#{DiscourseFonts::VERSION}")
|
||||
.and include("http://cdn.localhost/fonts/#{heading_font[:variants][0][:filename]}?v=#{DiscourseFonts::VERSION}")
|
||||
end
|
||||
|
||||
@@ -188,22 +188,12 @@ describe Stylesheet::Manager do
|
||||
DiscoursePluginRegistry.reset!
|
||||
end
|
||||
|
||||
it 'can correctly account for plugins in digest' do
|
||||
theme = Fabricate(:theme)
|
||||
manager = manager(theme.id)
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(
|
||||
target: :desktop_theme, theme: theme, manager: manager
|
||||
)
|
||||
|
||||
it 'can correctly account for plugins in default digest' do
|
||||
builder = Stylesheet::Manager::Builder.new(target: :desktop, manager: manager)
|
||||
digest1 = builder.digest
|
||||
|
||||
DiscoursePluginRegistry.stylesheets["fake"] = Set.new(["fake_file"])
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(
|
||||
target: :desktop_theme, theme: theme, manager: manager
|
||||
)
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(target: :desktop, manager: manager)
|
||||
digest2 = builder.digest
|
||||
|
||||
expect(digest1).not_to eq(digest2)
|
||||
@@ -282,6 +272,21 @@ describe Stylesheet::Manager do
|
||||
|
||||
expect(digest1).not_to eq(digest2)
|
||||
end
|
||||
|
||||
it 'returns different digest based on target' do
|
||||
theme = Fabricate(:theme)
|
||||
builder = Stylesheet::Manager::Builder.new(target: :desktop_theme, theme: theme, manager: manager)
|
||||
expect(builder.digest).to eq(builder.theme_digest)
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(target: :color_definitions, manager: manager)
|
||||
expect(builder.digest).to eq(builder.color_scheme_digest)
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(target: :admin, manager: manager)
|
||||
expect(builder.digest).to eq(builder.default_digest)
|
||||
|
||||
builder = Stylesheet::Manager::Builder.new(target: :desktop, manager: manager)
|
||||
expect(builder.digest).to eq(builder.default_digest)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'color_scheme_digest' do
|
||||
|
||||
Reference in New Issue
Block a user