Fix serialization of followers/following counts when user hides their network (#16418)

* Add tests

* Fix serialization of followers/following counts when user hides their network

Fixes #16382

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
shrike
Claire 2021-06-21 20:14:47 +02:00 committed by GitHub
parent d174d12c83
commit 63b807cffc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 4 deletions

View File

@ -85,7 +85,7 @@ class FollowerAccountsController < ApplicationController
if page_requested? || !@account.user_hides_network?
# Return all fields
else
%i(id type totalItems)
%i(id type total_items)
end
end
end

View File

@ -85,7 +85,7 @@ class FollowingAccountsController < ApplicationController
if page_requested? || !@account.user_hides_network?
# Return all fields
else
%i(id type totalItems)
%i(id type total_items)
end
end
end

View File

@ -3,7 +3,7 @@ require 'rails_helper'
describe FollowerAccountsController do
render_views
let(:alice) { Fabricate(:account, username: 'alice') }
let(:alice) { Fabricate(:user).account }
let(:follower0) { Fabricate(:account) }
let(:follower1) { Fabricate(:account) }
@ -101,6 +101,23 @@ describe FollowerAccountsController do
expect(body['partOf']).to be_blank
end
context 'when account hides their network' do
before do
alice.user.settings.hide_network = true
end
it 'returns followers count' do
expect(body['totalItems']).to eq 2
end
it 'does not return items' do
expect(body['items']).to be_blank
expect(body['orderedItems']).to be_blank
expect(body['first']).to be_blank
expect(body['last']).to be_blank
end
end
context 'when account is permanently suspended' do
before do
alice.suspend!

View File

@ -3,7 +3,7 @@ require 'rails_helper'
describe FollowingAccountsController do
render_views
let(:alice) { Fabricate(:account, username: 'alice') }
let(:alice) { Fabricate(:user).account }
let(:followee0) { Fabricate(:account) }
let(:followee1) { Fabricate(:account) }
@ -101,6 +101,23 @@ describe FollowingAccountsController do
expect(body['partOf']).to be_blank
end
context 'when account hides their network' do
before do
alice.user.settings.hide_network = true
end
it 'returns followers count' do
expect(body['totalItems']).to eq 2
end
it 'does not return items' do
expect(body['items']).to be_blank
expect(body['orderedItems']).to be_blank
expect(body['first']).to be_blank
expect(body['last']).to be_blank
end
end
context 'when account is permanently suspended' do
before do
alice.suspend!