Handle featured collections without items (#27581)
This commit is contained in:
		
							parent
							
								
									fa7e64df1d
								
							
						
					
					
						commit
						8f998cd96a
					
				| 
						 | 
					@ -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))
 | 
					      stub_request(:get, 'https://example.com/account/pinned/unknown-inlined').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_inlined))
 | 
				
			||||||
      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_unreachable))
 | 
					      stub_request(:get, 'https://example.com/account/pinned/unknown-reachable').to_return(status: 200, body: Oj.dump(status_json_pinned_unknown_unreachable))
 | 
				
			||||||
 | 
					      stub_request(:get, 'https://example.com/account/collections/featured').to_return(status: 200, body: Oj.dump(featured_with_null))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      subject.call(actor, note: true, hashtag: false)
 | 
					      subject.call(actor, note: true, hashtag: false)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue