mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 17:17:17 +08:00
DEV: Refactor theme SCSS compilation (#11919)
This commit is contained in:
@ -150,20 +150,26 @@ HTML
|
||||
field = ThemeField.create!(theme_id: 1, target_id: 0, name: "scss", value: css)
|
||||
field.ensure_baked!
|
||||
expect(field.error).not_to eq(nil)
|
||||
|
||||
field.value = "@import 'missingfile';"
|
||||
field.save!
|
||||
field.ensure_baked!
|
||||
expect(field.error).to include("File to import not found or unreadable: missingfile.scss.")
|
||||
|
||||
field.value = "body {color: blue};"
|
||||
field.save!
|
||||
field.ensure_baked!
|
||||
|
||||
expect(field.error).to eq(nil)
|
||||
end
|
||||
|
||||
it "allows importing scss files" do
|
||||
theme = Fabricate(:theme)
|
||||
main_field = theme.set_field(target: :common, name: :scss, value: ".class1{color: red}\n@import 'rootfile1';")
|
||||
main_field = theme.set_field(target: :common, name: :scss, value: ".class1{color: red}\n@import 'rootfile1';\n@import 'rootfile3';")
|
||||
theme.set_field(target: :extra_scss, name: "rootfile1", value: ".class2{color:green}\n@import 'foldername/subfile1';")
|
||||
theme.set_field(target: :extra_scss, name: "rootfile2", value: ".class3{color:green} ")
|
||||
theme.set_field(target: :extra_scss, name: "foldername/subfile1", value: ".class4{color:yellow}\n@import 'subfile2';")
|
||||
theme.set_field(target: :extra_scss, name: "foldername/subfile2", value: ".class5{color:yellow}\n@import '../rootfile2';")
|
||||
theme.set_field(target: :extra_scss, name: "rootfile3", value: ".class6{color:green} ")
|
||||
|
||||
theme.save!
|
||||
result = main_field.compile_scss[0]
|
||||
@ -173,6 +179,7 @@ HTML
|
||||
expect(result).to include(".class3")
|
||||
expect(result).to include(".class4")
|
||||
expect(result).to include(".class5")
|
||||
expect(result).to include(".class6")
|
||||
end
|
||||
|
||||
it "correctly handles extra JS fields" do
|
||||
|
Reference in New Issue
Block a user