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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user