discourse/spec/lib/site_icon_manager_spec.rb
David Taylor c9dab6fd08
DEV: Automatically require 'rails_helper' in all specs (#16077)
It's very easy to forget to add `require 'rails_helper'` at the top of every core/plugin spec file, and omissions can cause some very confusing/sporadic errors.

By setting this flag in `.rspec`, we can remove the need for `require 'rails_helper'` entirely.
2022-03-01 17:50:50 +00:00

48 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class GlobalPathInstance
extend GlobalPath
end
describe SiteIconManager do
before do
SiteIconManager.enable
end
let(:upload) do
UploadCreator.new(file_from_fixtures("smallest.png"), 'logo.png').create_for(Discourse.system_user.id)
end
it "works correctly" do
SiteSetting.logo = nil
SiteSetting.logo_small = nil
# Falls back to sketch for some icons
expect(SiteIconManager.favicon.upload_id).to eq(SiteIconManager::SKETCH_LOGO_ID)
expect(SiteIconManager.mobile_logo).to eq(nil)
SiteSetting.logo_small = upload
# Always resizes to 512x512
manifest = SiteIconManager.manifest_icon
expect(manifest.upload_id).to eq(upload.id)
expect(manifest.width).to eq(512)
expect(manifest.height).to eq(512)
# Always resizes to 32x32
favicon = SiteIconManager.favicon
expect(favicon.upload_id).to eq(upload.id)
expect(favicon.width).to eq(32)
expect(favicon.height).to eq(32)
# Don't resize
opengraph = SiteIconManager.opengraph_image
expect(opengraph).to eq(upload)
# Site Setting integration
expect(SiteSetting.manifest_icon).to eq(nil)
expect(SiteSetting.site_manifest_icon_url).to eq(GlobalPathInstance.full_cdn_url(manifest.url))
end
end