diff --git a/app/models/emoji.rb b/app/models/emoji.rb index 54cac0c4b2b..e737110cf23 100644 --- a/app/models/emoji.rb +++ b/app/models/emoji.rb @@ -95,7 +95,7 @@ class Emoji CustomEmoji.order(:name).all.each do |emoji| result << Emoji.new.tap do |e| e.name = emoji.name - e.url = emoji.upload.url + e.url = emoji.upload&.url end end diff --git a/spec/models/emoji_spec.rb b/spec/models/emoji_spec.rb index 33b2f9114d9..40c214b40aa 100644 --- a/spec/models/emoji_spec.rb +++ b/spec/models/emoji_spec.rb @@ -15,4 +15,17 @@ describe Emoji do expect(Emoji.replacement_code('robin')).to be_nil end + describe '.load_custom' do + describe 'when a custom emoji has an invalid upload_id' do + it 'should return the custom emoji without a URL' do + CustomEmoji.create!(name: 'test', upload_id: -1) + + emoji = Emoji.load_custom.first + + expect(emoji.name).to eq('test') + expect(emoji.url).to eq(nil) + end + end + end + end