Use body_as_json directly instead of via local var assignment (#31696)
				
					
				
			This commit is contained in:
		
							parent
							
								
									e5155c50fd
								
							
						
					
					
						commit
						24a0b20408
					
				| @ -114,10 +114,11 @@ describe '/api/v1/accounts' do | ||||
| 
 | ||||
|           expect(response).to have_http_status(200) | ||||
| 
 | ||||
|           json = body_as_json | ||||
| 
 | ||||
|           expect(json[:following]).to be true | ||||
|           expect(json[:requested]).to be false | ||||
|           expect(body_as_json) | ||||
|             .to include( | ||||
|               following: true, | ||||
|               requested: false | ||||
|             ) | ||||
| 
 | ||||
|           expect(user.account.following?(other_account)).to be true | ||||
|         end | ||||
| @ -133,10 +134,11 @@ describe '/api/v1/accounts' do | ||||
| 
 | ||||
|           expect(response).to have_http_status(200) | ||||
| 
 | ||||
|           json = body_as_json | ||||
| 
 | ||||
|           expect(json[:following]).to be false | ||||
|           expect(json[:requested]).to be true | ||||
|           expect(body_as_json) | ||||
|             .to include( | ||||
|               following: false, | ||||
|               requested: true | ||||
|             ) | ||||
| 
 | ||||
|           expect(user.account.requested?(other_account)).to be true | ||||
|         end | ||||
|  | ||||
| @ -96,10 +96,11 @@ RSpec.describe 'Canonical Email Blocks' do | ||||
|         subject | ||||
| 
 | ||||
|         expect(response).to have_http_status(200) | ||||
|         json = body_as_json | ||||
| 
 | ||||
|         expect(json[:id]).to eq(canonical_email_block.id.to_s) | ||||
|         expect(json[:canonical_email_hash]).to eq(canonical_email_block.canonical_email_hash) | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             id: eq(canonical_email_block.id.to_s), | ||||
|             canonical_email_hash: eq(canonical_email_block.canonical_email_hash) | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  | ||||
| @ -133,10 +133,8 @@ RSpec.describe 'Domain Blocks' do | ||||
|     it 'creates a domain block with the expected domain name and severity', :aggregate_failures do | ||||
|       subject | ||||
| 
 | ||||
|       body = body_as_json | ||||
| 
 | ||||
|       expect(response).to have_http_status(200) | ||||
|       expect(body).to match a_hash_including( | ||||
|       expect(body_as_json).to match a_hash_including( | ||||
|         { | ||||
|           domain: 'foo.bar.com', | ||||
|           severity: 'silence', | ||||
| @ -156,10 +154,8 @@ RSpec.describe 'Domain Blocks' do | ||||
|       it 'creates a domain block with the expected domain name and severity', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(response).to have_http_status(200) | ||||
|         expect(body).to match a_hash_including( | ||||
|         expect(body_as_json).to match a_hash_including( | ||||
|           { | ||||
|             domain: 'foo.bar.com', | ||||
|             severity: 'suspend', | ||||
|  | ||||
| @ -88,10 +88,12 @@ RSpec.describe 'IP Blocks' do | ||||
|       subject | ||||
| 
 | ||||
|       expect(response).to have_http_status(200) | ||||
|       json = body_as_json | ||||
| 
 | ||||
|       expect(json[:ip]).to eq("#{ip_block.ip}/#{ip_block.ip.prefix}") | ||||
|       expect(json[:severity]).to eq(ip_block.severity.to_s) | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           ip: eq("#{ip_block.ip}/#{ip_block.ip.prefix}"), | ||||
|           severity: eq(ip_block.severity.to_s) | ||||
|         ) | ||||
|     end | ||||
| 
 | ||||
|     context 'when ip block does not exist' do | ||||
| @ -118,11 +120,12 @@ RSpec.describe 'IP Blocks' do | ||||
|       subject | ||||
| 
 | ||||
|       expect(response).to have_http_status(200) | ||||
|       json = body_as_json | ||||
| 
 | ||||
|       expect(json[:ip]).to eq("#{params[:ip]}/32") | ||||
|       expect(json[:severity]).to eq(params[:severity]) | ||||
|       expect(json[:comment]).to eq(params[:comment]) | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           ip: eq("#{params[:ip]}/32"), | ||||
|           severity: eq(params[:severity]), | ||||
|           comment: eq(params[:comment]) | ||||
|         ) | ||||
|     end | ||||
| 
 | ||||
|     context 'when the required ip param is not provided' do | ||||
|  | ||||
| @ -61,9 +61,10 @@ RSpec.describe 'Apps' do | ||||
|         expect(response).to have_http_status(200) | ||||
|         expect(Doorkeeper::Application.find_by(name: client_name)).to be_present | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body[:scopes]).to eq Doorkeeper.config.default_scopes.to_a | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             scopes: Doorkeeper.config.default_scopes.to_a | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -81,9 +82,10 @@ RSpec.describe 'Apps' do | ||||
|         expect(app).to be_present | ||||
|         expect(app.scopes.to_s).to eq 'read' | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body[:scopes]).to eq ['read'] | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             scopes: %w(read) | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -163,10 +165,11 @@ RSpec.describe 'Apps' do | ||||
|         expect(app.redirect_uri).to eq redirect_uris | ||||
|         expect(app.redirect_uris).to eq redirect_uris.split | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body[:redirect_uri]).to eq redirect_uris | ||||
|         expect(body[:redirect_uris]).to eq redirect_uris.split | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             redirect_uri: redirect_uris, | ||||
|             redirect_uris: redirect_uris.split | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -184,10 +187,11 @@ RSpec.describe 'Apps' do | ||||
|         expect(app.redirect_uri).to eq redirect_uris.join "\n" | ||||
|         expect(app.redirect_uris).to eq redirect_uris | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body[:redirect_uri]).to eq redirect_uris.join "\n" | ||||
|         expect(body[:redirect_uris]).to eq redirect_uris | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             redirect_uri: redirect_uris.join("\n"), | ||||
|             redirect_uris: redirect_uris | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  | ||||
| @ -55,10 +55,8 @@ RSpec.describe 'Blocks' do | ||||
|       it 'queries the blocks in range according to max_id', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         response_body = body_as_json | ||||
| 
 | ||||
|         expect(response_body.size).to be 1 | ||||
|         expect(response_body[0][:id]).to eq(blocks[0].target_account.id.to_s) | ||||
|         expect(body_as_json) | ||||
|           .to contain_exactly(include(id: blocks.first.target_account.id.to_s)) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -68,10 +66,8 @@ RSpec.describe 'Blocks' do | ||||
|       it 'queries the blocks in range according to since_id', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         response_body = body_as_json | ||||
| 
 | ||||
|         expect(response_body.size).to be 1 | ||||
|         expect(response_body[0][:id]).to eq(blocks[2].target_account.id.to_s) | ||||
|         expect(body_as_json) | ||||
|           .to contain_exactly(include(id: blocks[2].target_account.id.to_s)) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|  | ||||
| @ -37,9 +37,7 @@ RSpec.describe 'FeaturedTags' do | ||||
|       it 'returns an empty body' do | ||||
|         get '/api/v1/featured_tags', headers: headers | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body).to be_empty | ||||
|         expect(body_as_json).to be_empty | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -49,10 +47,10 @@ RSpec.describe 'FeaturedTags' do | ||||
|       it 'returns only the featured tags belonging to the requesting user' do | ||||
|         get '/api/v1/featured_tags', headers: headers | ||||
| 
 | ||||
|         body = body_as_json | ||||
|         expected_ids = user_featured_tags.pluck(:id).map(&:to_s) | ||||
| 
 | ||||
|         expect(body.pluck(:id)).to match_array(expected_ids) | ||||
|         expect(body_as_json.pluck(:id)) | ||||
|           .to match_array( | ||||
|             user_featured_tags.pluck(:id).map(&:to_s) | ||||
|           ) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| @ -69,9 +67,10 @@ RSpec.describe 'FeaturedTags' do | ||||
|     it 'returns the correct tag name' do | ||||
|       post '/api/v1/featured_tags', headers: headers, params: params | ||||
| 
 | ||||
|       body = body_as_json | ||||
| 
 | ||||
|       expect(body[:name]).to eq(params[:name]) | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           name: params[:name] | ||||
|         ) | ||||
|     end | ||||
| 
 | ||||
|     it 'creates a new featured tag for the requesting user' do | ||||
| @ -142,9 +141,7 @@ RSpec.describe 'FeaturedTags' do | ||||
|     it 'returns an empty body' do | ||||
|       delete "/api/v1/featured_tags/#{id}", headers: headers | ||||
| 
 | ||||
|       body = body_as_json | ||||
| 
 | ||||
|       expect(body).to be_empty | ||||
|       expect(body_as_json).to be_empty | ||||
|     end | ||||
| 
 | ||||
|     it 'deletes the featured tag', :inline_jobs do | ||||
|  | ||||
| @ -17,13 +17,12 @@ RSpec.describe 'API Markers' do | ||||
|     end | ||||
| 
 | ||||
|     it 'returns markers', :aggregate_failures do | ||||
|       json = body_as_json | ||||
| 
 | ||||
|       expect(response).to have_http_status(200) | ||||
|       expect(json.key?(:home)).to be true | ||||
|       expect(json[:home][:last_read_id]).to eq '123' | ||||
|       expect(json.key?(:notifications)).to be true | ||||
|       expect(json[:notifications][:last_read_id]).to eq '456' | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           home: include(last_read_id: '123'), | ||||
|           notifications: include(last_read_id: '456') | ||||
|         ) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | ||||
| @ -58,10 +58,8 @@ RSpec.describe 'Mutes' do | ||||
|       it 'queries mutes in range according to max_id', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body.size).to eq 1 | ||||
|         expect(body[0][:id]).to eq mutes[0].target_account_id.to_s | ||||
|         expect(body_as_json) | ||||
|           .to contain_exactly(include(id: mutes.first.target_account_id.to_s)) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
| @ -71,10 +69,8 @@ RSpec.describe 'Mutes' do | ||||
|       it 'queries mutes in range according to since_id', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         body = body_as_json | ||||
| 
 | ||||
|         expect(body.size).to eq 1 | ||||
|         expect(body[0][:id]).to eq mutes[1].target_account_id.to_s | ||||
|         expect(body_as_json) | ||||
|           .to contain_exactly(include(id: mutes[1].target_account_id.to_s)) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  | ||||
| @ -24,11 +24,14 @@ describe 'API V1 Statuses Reblogs' do | ||||
| 
 | ||||
|           expect(user.account.reblogged?(status)).to be true | ||||
| 
 | ||||
|           hash_body = body_as_json | ||||
| 
 | ||||
|           expect(hash_body[:reblog][:id]).to eq status.id.to_s | ||||
|           expect(hash_body[:reblog][:reblogs_count]).to eq 1 | ||||
|           expect(hash_body[:reblog][:reblogged]).to be true | ||||
|           expect(body_as_json) | ||||
|             .to include( | ||||
|               reblog: include( | ||||
|                 id: status.id.to_s, | ||||
|                 reblogs_count: 1, | ||||
|                 reblogged: true | ||||
|               ) | ||||
|             ) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
| @ -57,11 +60,12 @@ describe 'API V1 Statuses Reblogs' do | ||||
| 
 | ||||
|           expect(user.account.reblogged?(status)).to be false | ||||
| 
 | ||||
|           hash_body = body_as_json | ||||
| 
 | ||||
|           expect(hash_body[:id]).to eq status.id.to_s | ||||
|           expect(hash_body[:reblogs_count]).to eq 0 | ||||
|           expect(hash_body[:reblogged]).to be false | ||||
|           expect(body_as_json) | ||||
|             .to include( | ||||
|               id: status.id.to_s, | ||||
|               reblogs_count: 0, | ||||
|               reblogged: false | ||||
|             ) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
| @ -81,11 +85,12 @@ describe 'API V1 Statuses Reblogs' do | ||||
| 
 | ||||
|           expect(user.account.reblogged?(status)).to be false | ||||
| 
 | ||||
|           hash_body = body_as_json | ||||
| 
 | ||||
|           expect(hash_body[:id]).to eq status.id.to_s | ||||
|           expect(hash_body[:reblogs_count]).to eq 0 | ||||
|           expect(hash_body[:reblogged]).to be false | ||||
|           expect(body_as_json) | ||||
|             .to include( | ||||
|               id: status.id.to_s, | ||||
|               reblogs_count: 0, | ||||
|               reblogged: false | ||||
|             ) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|  | ||||
| @ -32,10 +32,8 @@ RSpec.describe 'Suggestions' do | ||||
|     it 'returns accounts' do | ||||
|       subject | ||||
| 
 | ||||
|       body = body_as_json | ||||
| 
 | ||||
|       expect(body.size).to eq 2 | ||||
|       expect(body.pluck(:id)).to match_array([bob, jeff].map { |i| i.id.to_s }) | ||||
|       expect(body_as_json) | ||||
|         .to contain_exactly(include(id: bob.id.to_s), include(id: jeff.id.to_s)) | ||||
|     end | ||||
| 
 | ||||
|     context 'with limit param' do | ||||
|  | ||||
| @ -42,9 +42,11 @@ RSpec.describe 'API V2 Filters Keywords' do | ||||
|     it 'creates a filter', :aggregate_failures do | ||||
|       expect(response).to have_http_status(200) | ||||
| 
 | ||||
|       json = body_as_json | ||||
|       expect(json[:keyword]).to eq 'magic' | ||||
|       expect(json[:whole_word]).to be false | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           keyword: 'magic', | ||||
|           whole_word: false | ||||
|         ) | ||||
| 
 | ||||
|       filter = user.account.custom_filters.first | ||||
|       expect(filter).to_not be_nil | ||||
| @ -71,9 +73,11 @@ RSpec.describe 'API V2 Filters Keywords' do | ||||
|     it 'responds with the keyword', :aggregate_failures do | ||||
|       expect(response).to have_http_status(200) | ||||
| 
 | ||||
|       json = body_as_json | ||||
|       expect(json[:keyword]).to eq 'foo' | ||||
|       expect(json[:whole_word]).to be false | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           keyword: 'foo', | ||||
|           whole_word: false | ||||
|         ) | ||||
|     end | ||||
| 
 | ||||
|     context "when trying to access another user's filter keyword" do | ||||
|  | ||||
| @ -43,8 +43,10 @@ RSpec.describe 'API V2 Filters Statuses' do | ||||
|     it 'creates a filter', :aggregate_failures do | ||||
|       expect(response).to have_http_status(200) | ||||
| 
 | ||||
|       json = body_as_json | ||||
|       expect(json[:status_id]).to eq status.id.to_s | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           status_id: status.id.to_s | ||||
|         ) | ||||
| 
 | ||||
|       filter = user.account.custom_filters.first | ||||
|       expect(filter).to_not be_nil | ||||
| @ -71,8 +73,10 @@ RSpec.describe 'API V2 Filters Statuses' do | ||||
|     it 'responds with the filter', :aggregate_failures do | ||||
|       expect(response).to have_http_status(200) | ||||
| 
 | ||||
|       json = body_as_json | ||||
|       expect(json[:status_id]).to eq status_filter.status_id.to_s | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           status_id: status_filter.status.id.to_s | ||||
|         ) | ||||
|     end | ||||
| 
 | ||||
|     context "when trying to access another user's filter keyword" do | ||||
|  | ||||
| @ -58,12 +58,15 @@ RSpec.describe 'Filters' do | ||||
|       it 'returns a filter with keywords', :aggregate_failures do | ||||
|         subject | ||||
| 
 | ||||
|         json = body_as_json | ||||
| 
 | ||||
|         expect(json[:title]).to eq 'magic' | ||||
|         expect(json[:filter_action]).to eq 'hide' | ||||
|         expect(json[:context]).to eq ['home'] | ||||
|         expect(json[:keywords].map { |keyword| keyword.slice(:keyword, :whole_word) }).to match [{ keyword: 'magic', whole_word: true }] | ||||
|         expect(body_as_json) | ||||
|           .to include( | ||||
|             title: 'magic', | ||||
|             filter_action: 'hide', | ||||
|             context: %w(home), | ||||
|             keywords: contain_exactly( | ||||
|               include(keyword: 'magic', whole_word: true) | ||||
|             ) | ||||
|           ) | ||||
|       end | ||||
| 
 | ||||
|       it 'creates a filter', :aggregate_failures do | ||||
|  | ||||
| @ -129,9 +129,11 @@ describe 'The /.well-known/webfinger endpoint' do | ||||
|     end | ||||
| 
 | ||||
|     it 'returns links for the internal account' do | ||||
|       json = body_as_json | ||||
|       expect(json[:subject]).to eq 'acct:mastodon.internal@cb6e6126.ngrok.io' | ||||
|       expect(json[:aliases]).to eq ['https://cb6e6126.ngrok.io/actor'] | ||||
|       expect(body_as_json) | ||||
|         .to include( | ||||
|           subject: 'acct:mastodon.internal@cb6e6126.ngrok.io', | ||||
|           aliases: ['https://cb6e6126.ngrok.io/actor'] | ||||
|         ) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user