mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 08:03:36 +08:00
65 lines
2.2 KiB
Ruby
65 lines
2.2 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe SiteCustomization do
|
||
|
|
||
|
let :user do
|
||
|
Fabricate(:user)
|
||
|
end
|
||
|
|
||
|
let :customization do
|
||
|
SiteCustomization.create!(name: 'my name', user_id: user.id, header: "my awesome header", stylesheet: "my awesome css")
|
||
|
end
|
||
|
|
||
|
it 'should set default key when creating a new customization' do
|
||
|
s = SiteCustomization.create!(name: 'my name', user_id: user.id)
|
||
|
s.key.should_not == nil
|
||
|
end
|
||
|
|
||
|
context 'caching' do
|
||
|
it 'should allow me to lookup a filename containing my preview stylesheet' do
|
||
|
SiteCustomization.custom_stylesheet(customization.key).should ==
|
||
|
"<link class=\"custom-css\" rel=\"stylesheet\" href=\"/stylesheet-cache/#{customization.key}.css?#{customization.stylesheet_hash}\" type=\"text/css\" media=\"screen\">"
|
||
|
end
|
||
|
|
||
|
it 'should fix stylesheet files after changing the stylesheet' do
|
||
|
old_file = customization.stylesheet_fullpath
|
||
|
original = SiteCustomization.custom_stylesheet(customization.key)
|
||
|
|
||
|
File.exists?(old_file).should == true
|
||
|
customization.stylesheet = "div { clear:both; }"
|
||
|
customization.save
|
||
|
|
||
|
SiteCustomization.custom_stylesheet(customization.key).should_not == original
|
||
|
end
|
||
|
|
||
|
it 'should delete old stylesheet files after deleting' do
|
||
|
old_file = customization.stylesheet_fullpath
|
||
|
customization.ensure_stylesheet_on_disk!
|
||
|
customization.destroy
|
||
|
File.exists?(old_file).should == false
|
||
|
end
|
||
|
|
||
|
it 'should nuke old revs out of the cache' do
|
||
|
old_style = SiteCustomization.custom_stylesheet(customization.key)
|
||
|
|
||
|
customization.stylesheet = "hello worldz"
|
||
|
customization.save
|
||
|
SiteCustomization.custom_stylesheet(customization.key).should_not == old_style
|
||
|
end
|
||
|
|
||
|
|
||
|
it 'should compile scss' do
|
||
|
c = SiteCustomization.create!(user_id: user.id, name: "test", stylesheet: '$black: #000; #a { color: $black; }', header: '')
|
||
|
c.stylesheet_baked.should == "#a {\n color: black; }\n"
|
||
|
end
|
||
|
|
||
|
it 'should provide an awesome error on failure' do
|
||
|
c = SiteCustomization.create!(user_id: user.id, name: "test", stylesheet: "$black: #000; #a { color: $black; }\n\n\nboom", header: '')
|
||
|
|
||
|
c.stylesheet_baked.should =~ /Syntax error/
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
end
|