Migrate controller->request spec for api/v1/follow* (#28811)

This commit is contained in:
Matt Jankowski 2024-01-19 04:32:41 -05:00 committed by GitHub
parent 86cc88c216
commit 329911b0a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 22 deletions

View file

@ -21,7 +21,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
return [] if hide_results? return [] if hide_results?
scope = default_accounts scope = default_accounts
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id scope = scope.not_excluded_by_account(current_account) unless current_account.nil? || current_account.id == @account.id
scope.merge(paginated_follows).to_a scope.merge(paginated_follows).to_a
end end

View file

@ -21,7 +21,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
return [] if hide_results? return [] if hide_results?
scope = default_accounts scope = default_accounts
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id scope = scope.not_excluded_by_account(current_account) unless current_account.nil? || current_account.id == @account.id
scope.merge(paginated_follows).to_a scope.merge(paginated_follows).to_a
end end

View file

@ -2,11 +2,11 @@
require 'rails_helper' require 'rails_helper'
describe Api::V1::Accounts::FollowerAccountsController do describe 'API V1 Accounts FollowerAccounts' do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:scopes) { 'read:accounts' }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
let(:account) { Fabricate(:account) } let(:account) { Fabricate(:account) }
let(:alice) { Fabricate(:account) } let(:alice) { Fabricate(:account) }
let(:bob) { Fabricate(:account) } let(:bob) { Fabricate(:account) }
@ -14,12 +14,11 @@ describe Api::V1::Accounts::FollowerAccountsController do
before do before do
alice.follow!(account) alice.follow!(account)
bob.follow!(account) bob.follow!(account)
allow(controller).to receive(:doorkeeper_token) { token }
end end
describe 'GET #index' do describe 'GET /api/v1/accounts/:acount_id/followers' do
it 'returns accounts following the given account', :aggregate_failures do it 'returns accounts following the given account', :aggregate_failures do
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/followers", params: { limit: 2 }, headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json.size).to eq 2 expect(body_as_json.size).to eq 2
@ -28,7 +27,7 @@ describe Api::V1::Accounts::FollowerAccountsController do
it 'does not return blocked users', :aggregate_failures do it 'does not return blocked users', :aggregate_failures do
user.account.block!(bob) user.account.block!(bob)
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/followers", params: { limit: 2 }, headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json.size).to eq 1 expect(body_as_json.size).to eq 1
@ -41,7 +40,7 @@ describe Api::V1::Accounts::FollowerAccountsController do
end end
it 'hides results' do it 'hides results' do
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/followers", params: { limit: 2 }, headers: headers
expect(body_as_json.size).to eq 0 expect(body_as_json.size).to eq 0
end end
end end
@ -51,7 +50,7 @@ describe Api::V1::Accounts::FollowerAccountsController do
it 'returns all accounts, including muted accounts' do it 'returns all accounts, including muted accounts' do
account.mute!(bob) account.mute!(bob)
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/followers", params: { limit: 2 }, headers: headers
expect(body_as_json.size).to eq 2 expect(body_as_json.size).to eq 2
expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s) expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)

View file

@ -2,11 +2,11 @@
require 'rails_helper' require 'rails_helper'
describe Api::V1::Accounts::FollowingAccountsController do describe 'API V1 Accounts FollowingAccounts' do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:scopes) { 'read:accounts' }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
let(:account) { Fabricate(:account) } let(:account) { Fabricate(:account) }
let(:alice) { Fabricate(:account) } let(:alice) { Fabricate(:account) }
let(:bob) { Fabricate(:account) } let(:bob) { Fabricate(:account) }
@ -14,12 +14,11 @@ describe Api::V1::Accounts::FollowingAccountsController do
before do before do
account.follow!(alice) account.follow!(alice)
account.follow!(bob) account.follow!(bob)
allow(controller).to receive(:doorkeeper_token) { token }
end end
describe 'GET #index' do describe 'GET /api/v1/accounts/:account_id/following' do
it 'returns accounts followed by the given account', :aggregate_failures do it 'returns accounts followed by the given account', :aggregate_failures do
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/following", params: { limit: 2 }, headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json.size).to eq 2 expect(body_as_json.size).to eq 2
@ -28,7 +27,7 @@ describe Api::V1::Accounts::FollowingAccountsController do
it 'does not return blocked users', :aggregate_failures do it 'does not return blocked users', :aggregate_failures do
user.account.block!(bob) user.account.block!(bob)
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/following", params: { limit: 2 }, headers: headers
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
expect(body_as_json.size).to eq 1 expect(body_as_json.size).to eq 1
@ -41,7 +40,7 @@ describe Api::V1::Accounts::FollowingAccountsController do
end end
it 'hides results' do it 'hides results' do
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/following", params: { limit: 2 }, headers: headers
expect(body_as_json.size).to eq 0 expect(body_as_json.size).to eq 0
end end
end end
@ -51,7 +50,7 @@ describe Api::V1::Accounts::FollowingAccountsController do
it 'returns all accounts, including muted accounts' do it 'returns all accounts, including muted accounts' do
account.mute!(bob) account.mute!(bob)
get :index, params: { account_id: account.id, limit: 2 } get "/api/v1/accounts/#{account.id}/following", params: { limit: 2 }, headers: headers
expect(body_as_json.size).to eq 2 expect(body_as_json.size).to eq 2
expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s) expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)