0
0
Fork 0

Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `app/controllers/accounts_controller.rb`:
  Upstream introduced support for private pinned toots, but glitch-soc's query
  was a bit different as it filtered out local-only toots.
  Used upstream's query, while adding local-only filtering back.
- `app/controllers/activitypub/collections_controller.rb`:
  Same thing with regards to local-only posts.
- `app/validators/status_pin_validator.rb`:
  Not a real conflict, but the line below was different in glitch-soc due to
  the configurable pinned toots limit.
This commit is contained in:
Claire 2022-01-17 08:28:17 +01:00
commit 2d4b4b0b45
18 changed files with 164 additions and 28 deletions

View file

@ -39,7 +39,7 @@ describe Api::V1::Accounts::StatusesController do
end
end
context 'with only pinned' do
context 'with only own pinned' do
before do
Fabricate(:status_pin, account: user.account, status: Fabricate(:status, account: user.account))
end
@ -50,5 +50,38 @@ describe Api::V1::Accounts::StatusesController do
expect(response).to have_http_status(200)
end
end
context "with someone else's pinned statuses" do
let(:account) { Fabricate(:account, username: 'bob', domain: 'example.com') }
let(:status) { Fabricate(:status, account: account) }
let(:private_status) { Fabricate(:status, account: account, visibility: :private) }
let!(:pin) { Fabricate(:status_pin, account: account, status: status) }
let!(:private_pin) { Fabricate(:status_pin, account: account, status: private_status) }
it 'returns http success' do
get :index, params: { account_id: account.id, pinned: true }
expect(response).to have_http_status(200)
end
context 'when user does not follow account' do
it 'lists the public status only' do
get :index, params: { account_id: account.id, pinned: true }
json = body_as_json
expect(json.map { |item| item[:id].to_i }).to eq [status.id]
end
end
context 'when user follows account' do
before do
user.account.follow!(account)
end
it 'lists both the public and the private statuses' do
get :index, params: { account_id: account.id, pinned: true }
json = body_as_json
expect(json.map { |item| item[:id].to_i }.sort).to eq [status.id, private_status.id].sort
end
end
end
end
end