Fix own following/followers not showing muted users (#13614)
Fixes #13612
This commit is contained in:
		
							parent
							
								
									9c5306bfcf
								
							
						
					
					
						commit
						5479d33843
					
				
					 4 changed files with 48 additions and 2 deletions
				
			
		|  | @ -20,7 +20,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController | |||
|     return [] if hide_results? | ||||
| 
 | ||||
|     scope = default_accounts | ||||
|     scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? | ||||
|     scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id | ||||
|     scope.merge(paginated_follows).to_a | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController | |||
|     return [] if hide_results? | ||||
| 
 | ||||
|     scope = default_accounts | ||||
|     scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? | ||||
|     scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id | ||||
|     scope.merge(paginated_follows).to_a | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
|  | @ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowerAccountsController do | |||
|       expect(body_as_json.size).to eq 1 | ||||
|       expect(body_as_json[0][:id]).to eq alice.id.to_s | ||||
|     end | ||||
| 
 | ||||
|     context 'when requesting user is blocked' do | ||||
|       before do | ||||
|         account.block!(user.account) | ||||
|       end | ||||
| 
 | ||||
|       it 'hides results' do | ||||
|         get :index, params: { account_id: account.id, limit: 2 } | ||||
|         expect(body_as_json.size).to eq 0 | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'when requesting user is the account owner' do | ||||
|       let(:user) { Fabricate(:user, account: account) } | ||||
| 
 | ||||
|       it 'returns all accounts, including muted accounts' do | ||||
|         user.account.mute!(bob) | ||||
|         get :index, params: { account_id: account.id, limit: 2 } | ||||
| 
 | ||||
|         expect(body_as_json.size).to eq 2 | ||||
|         expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowingAccountsController do | |||
|       expect(body_as_json.size).to eq 1 | ||||
|       expect(body_as_json[0][:id]).to eq alice.id.to_s | ||||
|     end | ||||
| 
 | ||||
|     context 'when requesting user is blocked' do | ||||
|       before do | ||||
|         account.block!(user.account) | ||||
|       end | ||||
| 
 | ||||
|       it 'hides results' do | ||||
|         get :index, params: { account_id: account.id, limit: 2 } | ||||
|         expect(body_as_json.size).to eq 0 | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'when requesting user is the account owner' do | ||||
|       let(:user) { Fabricate(:user, account: account) } | ||||
| 
 | ||||
|       it 'returns all accounts, including muted accounts' do | ||||
|         user.account.mute!(bob) | ||||
|         get :index, params: { account_id: account.id, limit: 2 } | ||||
| 
 | ||||
|         expect(body_as_json.size).to eq 2 | ||||
|         expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue