mirror of
https://github.com/discourse/discourse.git
synced 2025-02-24 19:58:39 +08:00
DEV: enable raise_error in test envs for deprecated icons in svg_sprite.rb (#30980)
This PR raises an error on any deprecated icon names being converted by svg_sprite.rb, which will result in any deprecated icons being processed by the ruby lib to fail tests.
This commit is contained in:
parent
8ad34862e4
commit
65324b6e5d
@ -524,7 +524,10 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL
|
|||||||
new_name = remap_from_fa5(new_name)
|
new_name = remap_from_fa5(new_name)
|
||||||
|
|
||||||
if icon_name != new_name
|
if icon_name != new_name
|
||||||
Discourse.deprecate("The icon `#{icon_name}` is deprecated. Use `#{new_name}` instead.")
|
Discourse.deprecate(
|
||||||
|
"The icon `#{icon_name}` is deprecated. Use `#{new_name}` instead.",
|
||||||
|
raise_error: Rails.env.test?,
|
||||||
|
)
|
||||||
return new_name
|
return new_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ RSpec.describe SvgSprite do
|
|||||||
before do
|
before do
|
||||||
SvgSprite.clear_plugin_svg_sprite_cache!
|
SvgSprite.clear_plugin_svg_sprite_cache!
|
||||||
SvgSprite.expire_cache
|
SvgSprite.expire_cache
|
||||||
|
allow(Rails.env).to receive(:test?).and_return(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "can generate a bundle" do
|
it "can generate a bundle" do
|
||||||
@ -44,7 +45,7 @@ RSpec.describe SvgSprite do
|
|||||||
|
|
||||||
it "version string changes" do
|
it "version string changes" do
|
||||||
version1 = SvgSprite.version
|
version1 = SvgSprite.version
|
||||||
Fabricate(:badge, name: "Custom Icon Badge", icon: "fa-gamepad")
|
Fabricate(:badge, name: "Custom Icon Badge", icon: "gamepad")
|
||||||
version2 = SvgSprite.version
|
version2 = SvgSprite.version
|
||||||
|
|
||||||
expect(version1).not_to eq(version2)
|
expect(version1).not_to eq(version2)
|
||||||
@ -96,6 +97,11 @@ RSpec.describe SvgSprite do
|
|||||||
expect(SvgSprite.all_icons).to include("far-building")
|
expect(SvgSprite.all_icons).to include("far-building")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "raises an error in test for deprecated icons" do
|
||||||
|
allow(Rails.env).to receive(:test?).and_return(true)
|
||||||
|
expect { SvgSprite.search("fa-gamepad") }.to raise_error(Discourse::Deprecation)
|
||||||
|
end
|
||||||
|
|
||||||
it "includes icons defined in theme settings" do
|
it "includes icons defined in theme settings" do
|
||||||
# Works for default settings:
|
# Works for default settings:
|
||||||
theme.set_field(target: :settings, name: :yaml, value: "custom_icon: dragon")
|
theme.set_field(target: :settings, name: :yaml, value: "custom_icon: dragon")
|
||||||
|
@ -35,14 +35,14 @@ RSpec.describe SvgSpriteController do
|
|||||||
|
|
||||||
describe "#search" do
|
describe "#search" do
|
||||||
it "should not work for anons" do
|
it "should not work for anons" do
|
||||||
get "/svg-sprite/search/fa-bolt"
|
get "/svg-sprite/search/bolt"
|
||||||
expect(response.status).to eq(404)
|
expect(response.status).to eq(404)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should return symbol for FA icon search" do
|
it "should return symbol for FA icon search" do
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
get "/svg-sprite/search/fa-bolt"
|
get "/svg-sprite/search/bolt"
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(response.body).to include("bolt")
|
expect(response.body).to include("bolt")
|
||||||
end
|
end
|
||||||
@ -50,7 +50,7 @@ RSpec.describe SvgSpriteController do
|
|||||||
it "should return 404 when looking for non-existent FA icon" do
|
it "should return 404 when looking for non-existent FA icon" do
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
get "/svg-sprite/search/fa-not-a-valid-icon"
|
get "/svg-sprite/search/not-a-valid-icon"
|
||||||
expect(response.status).to eq(404)
|
expect(response.status).to eq(404)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ RSpec.describe SvgSpriteController do
|
|||||||
|
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
get "/svg-sprite/search/fa-my-custom-theme-icon"
|
get "/svg-sprite/search/my-custom-theme-icon"
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(response.body).to include("my-custom-theme-icon")
|
expect(response.body).to include("my-custom-theme-icon")
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user