otwarchive-symphonyarchive/spec/lib/tasks/skin_tasks.rake_spec.rb
2026-03-11 22:22:11 +00:00

35 lines
1.3 KiB
Ruby

require "spec_helper"
describe "rake skins:cache_chooser_skins", default_skin: true do
let(:css) { ".selector { color: yellow; }" }
let!(:default_skin) { Skin.find(AdminSetting.default_skin_id) }
let!(:chooser_skin) { create(:skin, in_chooser: true, css: css) }
let!(:user_skin) { create(:skin, css: css) }
it "calls cache! on in_chooser skins" do
expect do
subject.invoke
end.to change { chooser_skin.reload.public }.from(false).to(true)
.and change { chooser_skin.official }.from(false).to(true)
.and change { chooser_skin.cached }.from(false).to(true)
.and avoid_changing { default_skin.reload.public }
.and avoid_changing { default_skin.official }
.and change { default_skin.cached }.from(false).to(true)
.and avoid_changing { user_skin.reload.public }
.and avoid_changing { user_skin.official }
.and avoid_changing { user_skin.cached }
end
it "outputs names of skins that were cached" do
expect do
subject.invoke
end.to output("\nCached #{default_skin.title},#{chooser_skin.title}\n").to_stdout
end
it "outputs names of skins that could not be cached" do
allow_any_instance_of(Skin).to receive(:cache!).and_return(false)
expect do
subject.invoke
end.to output("\nCouldn't cache #{default_skin.title},#{chooser_skin.title}\n").to_stdout
end
end