49 lines
1.5 KiB
Ruby
49 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe EmojiSerializer do
|
|
fab!(:custom_emoji) { CustomEmoji.create!(name: "trout", upload: Fabricate(:upload)) }
|
|
|
|
describe "#url" do
|
|
subject(:serializer) { described_class.new(emoji, root: false) }
|
|
|
|
fab!(:emoji) { Emoji.load_custom.first }
|
|
|
|
it "returns a valid URL" do
|
|
expect(serializer.url).to start_with("/uploads/")
|
|
end
|
|
|
|
it "returns the creator's username" do
|
|
expect(serializer.created_by).to eq(emoji.created_by)
|
|
end
|
|
|
|
it "works with a CDN" do
|
|
set_cdn_url("https://cdn.com")
|
|
expect(serializer.url).to start_with("https://cdn.com")
|
|
end
|
|
end
|
|
|
|
describe "missing uploads" do
|
|
before { custom_emoji.upload.destroy! }
|
|
|
|
it "doesn't raise an error with a missing upload and a CDN" do
|
|
emoji = Emoji.load_custom.first
|
|
set_cdn_url("https://cdn.com")
|
|
result = described_class.new(Emoji.load_custom.first, root: false).as_json
|
|
expect(result[:url]).to be_blank
|
|
end
|
|
|
|
it "doesn't raise an error with a missing upload and an s3 CDN" do
|
|
emoji = Emoji.load_custom.first
|
|
|
|
SiteSetting.enable_s3_uploads = true
|
|
SiteSetting.s3_upload_bucket = "s3bucket"
|
|
SiteSetting.s3_access_key_id = "s3_access_key_id"
|
|
SiteSetting.s3_secret_access_key = "s3_secret_access_key"
|
|
SiteSetting.s3_cdn_url = "https://example.com"
|
|
result = described_class.new(Emoji.load_custom.first, root: false).as_json
|
|
|
|
expect(result[:url]).to be_blank
|
|
end
|
|
end
|
|
end
|