Handle featured collections without items (#27581)
This commit is contained in:
parent
86f15cef66
commit
8fe1cefe4c
@ -37,6 +37,8 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
|
|||||||
end
|
end
|
||||||
|
|
||||||
def process_items(items)
|
def process_items(items)
|
||||||
|
return if items.nil?
|
||||||
|
|
||||||
process_note_items(items) if @options[:note]
|
process_note_items(items) if @options[:note]
|
||||||
process_hashtag_items(items) if @options[:hashtag]
|
process_hashtag_items(items) if @options[:hashtag]
|
||||||
end
|
end
|
||||||
|
@ -42,12 +42,22 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let(:featured_with_null) do
|
||||||
|
{
|
||||||
|
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||||
|
id: 'https://example.com/account/collections/featured',
|
||||||
|
totalItems: 0,
|
||||||
|
type: 'OrderedCollection',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
let(:items) do
|
let(:items) do
|
||||||
[
|
[
|
||||||
'https://example.com/account/pinned/known', # known
|
'https://example.com/account/pinned/known', # known
|
||||||
status_json_pinned_unknown_inlined, # unknown inlined
|
status_json_pinned_unknown_inlined, # unknown inlined
|
||||||
'https://example.com/account/pinned/unknown-unreachable', # unknown unreachable
|
'https://example.com/account/pinned/unknown-unreachable', # unknown unreachable
|
||||||
'https://example.com/account/pinned/unknown-reachable', # unknown reachable
|
'https://example.com/account/pinned/unknown-reachable', # unknown reachable
|
||||||
|
'https://example.com/account/collections/featured', # featured with null
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -66,6 +76,7 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
|
|||||||
stub_request(:get, 'https://example.com/account/pinned/unknown-inlined').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_inlined), headers: { 'Content-Type': 'application/activity+json' })
|
stub_request(:get, 'https://example.com/account/pinned/unknown-inlined').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_inlined), headers: { 'Content-Type': 'application/activity+json' })
|
||||||
stub_request(:get, 'https://example.com/account/pinned/unknown-unreachable').to_return(status: 404)
|
stub_request(:get, 'https://example.com/account/pinned/unknown-unreachable').to_return(status: 404)
|
||||||
stub_request(:get, 'https://example.com/account/pinned/unknown-reachable').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_reachable), headers: { 'Content-Type': 'application/activity+json' })
|
stub_request(:get, 'https://example.com/account/pinned/unknown-reachable').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_reachable), headers: { 'Content-Type': 'application/activity+json' })
|
||||||
|
stub_request(:get, 'https://example.com/account/collections/featured').to_return(status: 200, body: Oj.dump(featured_with_null), headers: { 'Content-Type': 'application/activity+json' })
|
||||||
|
|
||||||
subject.call(actor, note: true, hashtag: false)
|
subject.call(actor, note: true, hashtag: false)
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user