mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 12:55:56 +01:00
Fix empty authors preview card serialization (#33151)
This commit is contained in:
parent
6fddf1610c
commit
e5bea68b20
2 changed files with 49 additions and 1 deletions
|
@ -134,7 +134,7 @@ class PreviewCard < ApplicationRecord
|
|||
end
|
||||
|
||||
def authors
|
||||
@authors ||= [PreviewCard::Author.new(self)]
|
||||
@authors ||= Array(serialized_authors)
|
||||
end
|
||||
|
||||
class Author < ActiveModelSerializers::Model
|
||||
|
@ -169,6 +169,13 @@ class PreviewCard < ApplicationRecord
|
|||
|
||||
private
|
||||
|
||||
def serialized_authors
|
||||
if author_name? || author_url?
|
||||
PreviewCard::Author
|
||||
.new(self)
|
||||
end
|
||||
end
|
||||
|
||||
def extract_dimensions
|
||||
file = image.queued_for_write[:original]
|
||||
|
||||
|
|
41
spec/serializers/rest/preview_card_serializer_spec.rb
Normal file
41
spec/serializers/rest/preview_card_serializer_spec.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe REST::PreviewCardSerializer do
|
||||
subject do
|
||||
serialized_record_json(
|
||||
preview_card,
|
||||
described_class
|
||||
)
|
||||
end
|
||||
|
||||
context 'when preview card does not have author data' do
|
||||
let(:preview_card) { Fabricate.build :preview_card }
|
||||
|
||||
it 'includes empty authors array' do
|
||||
expect(subject.deep_symbolize_keys)
|
||||
.to include(
|
||||
authors: be_an(Array).and(be_empty)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when preview card has author data' do
|
||||
let(:preview_card) { Fabricate.build :preview_card, author_name: 'Name', author_url: 'https://host.example/123' }
|
||||
|
||||
it 'includes populated authors array' do
|
||||
expect(subject.deep_symbolize_keys)
|
||||
.to include(
|
||||
authors: be_an(Array).and(
|
||||
contain_exactly(
|
||||
include(
|
||||
name: 'Name',
|
||||
url: 'https://host.example/123'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue