mirror of
https://github.com/discourse/discourse.git
synced 2025-06-25 13:51:34 +08:00

Previously we were compiling core and theme CSS into two targets: Desktop and Mobile. The majority of both files was the 'common' css. This commit splits those common styles into their own targets so that there is less duplication. This should improve compilation times + cache reuse, as well as opening the door for experiments with media-query-based mobile-modes. The only functional change is that we can no longer use `@extend` to copy 'common' rules in core to mobile/desktop. This is probably for the best. Duplication and/or mixins are a more native-css pattern for this. Plugins already have a common / mobile / desktop pattern, so are unchanged by this commit.
56 lines
1.6 KiB
Ruby
56 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe SafeModeController do
|
|
describe "index" do
|
|
it "never includes customizations" do
|
|
theme = Fabricate(:theme)
|
|
theme.set_field(target: :common, name: "header", value: "My Custom Header")
|
|
theme.set_field(target: :common, name: :scss, value: "body { background: red; }")
|
|
theme.save!
|
|
theme.set_default!
|
|
|
|
Fabricate(:admin) # Avoid wizard page
|
|
|
|
get "/"
|
|
|
|
expect(response.status).to eq(200)
|
|
expect(response.body).to include("data-theme-id=\"#{theme.id}\"")
|
|
|
|
get "/safe-mode"
|
|
|
|
expect(response.status).to eq(200)
|
|
expect(response.body).not_to include("My Custom Header")
|
|
expect(response.body).not_to include("data-theme-id=\"#{theme.id}\"")
|
|
end
|
|
|
|
it "sets the robots header" do
|
|
get "/safe-mode"
|
|
expect(response.headers["X-Robots-Tag"]).to eq("noindex, nofollow")
|
|
end
|
|
end
|
|
|
|
describe "enter" do
|
|
context "when no params are given" do
|
|
it "should redirect back to safe mode page" do
|
|
post "/safe-mode"
|
|
expect(response.status).to redirect_to(safe_mode_path)
|
|
end
|
|
end
|
|
|
|
context "when safe mode is not enabled" do
|
|
it "should raise an error" do
|
|
SiteSetting.enable_safe_mode = false
|
|
post "/safe-mode"
|
|
expect(response.status).to eq(404)
|
|
end
|
|
|
|
it "doesn't raise an error for staff" do
|
|
SiteSetting.enable_safe_mode = false
|
|
sign_in(Fabricate(:moderator))
|
|
post "/safe-mode"
|
|
expect(response.status).to redirect_to(safe_mode_path)
|
|
end
|
|
end
|
|
end
|
|
end
|