|
@@ -97,6 +97,21 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
|
|
|
end
|
|
|
|
|
|
it_behaves_like 'sets pinned posts'
|
|
|
+
|
|
|
+ context 'when there is a single item, with the array compacted away' do
|
|
|
+ let(:items) { 'https://example.com/account/pinned/4' }
|
|
|
+
|
|
|
+ before do
|
|
|
+ stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4))
|
|
|
+ subject.call(actor, note: true, hashtag: false)
|
|
|
+ end
|
|
|
+
|
|
|
+ it 'sets expected posts as pinned posts' do
|
|
|
+ expect(actor.pinned_statuses.pluck(:uri)).to contain_exactly(
|
|
|
+ 'https://example.com/account/pinned/4'
|
|
|
+ )
|
|
|
+ end
|
|
|
+ end
|
|
|
end
|
|
|
|
|
|
context 'when the endpoint is a paginated Collection' do
|
|
@@ -118,6 +133,21 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
|
|
|
end
|
|
|
|
|
|
it_behaves_like 'sets pinned posts'
|
|
|
+
|
|
|
+ context 'when there is a single item, with the array compacted away' do
|
|
|
+ let(:items) { 'https://example.com/account/pinned/4' }
|
|
|
+
|
|
|
+ before do
|
|
|
+ stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4))
|
|
|
+ subject.call(actor, note: true, hashtag: false)
|
|
|
+ end
|
|
|
+
|
|
|
+ it 'sets expected posts as pinned posts' do
|
|
|
+ expect(actor.pinned_statuses.pluck(:uri)).to contain_exactly(
|
|
|
+ 'https://example.com/account/pinned/4'
|
|
|
+ )
|
|
|
+ end
|
|
|
+ end
|
|
|
end
|
|
|
end
|
|
|
end
|