48 lines
1.2 KiB
Ruby
48 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe ThemeSvgSprite do
|
|
fab!(:theme) { Fabricate(:theme) }
|
|
|
|
describe "#refetch!" do
|
|
context "when an upload exists" do
|
|
before do
|
|
fname = "custom-theme-icon-sprite.svg"
|
|
upload = UploadCreator.new(file_from_fixtures(fname), fname, for_theme: true).create_for(-1)
|
|
|
|
theme.set_field(
|
|
target: :common,
|
|
name: SvgSprite.theme_sprite_variable_name,
|
|
upload_id: upload.id,
|
|
type: :theme_upload_var,
|
|
)
|
|
|
|
theme.save!
|
|
end
|
|
|
|
it "fetches values from the store and puts them in the table" do
|
|
expect(ThemeSvgSprite.count).to eq(1)
|
|
|
|
sprite = ThemeSvgSprite.first
|
|
original_content = sprite.sprite
|
|
|
|
expect(original_content).not_to be_empty
|
|
|
|
sprite.update!(sprite: "INVALID")
|
|
|
|
ThemeSvgSprite.refetch!
|
|
|
|
sprite.reload
|
|
expect(sprite.sprite).to eq(original_content)
|
|
expect(ThemeSvgSprite.count).to eq(1)
|
|
end
|
|
end
|
|
|
|
# It needs to do this since the cache is based on values in this table
|
|
it "expires the svg sprite cache" do
|
|
SvgSprite.expects(:expire_cache)
|
|
|
|
ThemeSvgSprite.refetch!
|
|
end
|
|
end
|
|
end
|