|
|
|
@ -4,6 +4,7 @@ require 'rails_helper' |
|
|
|
|
|
|
|
|
|
RSpec.describe ActivityPub::RepliesController, type: :controller do |
|
|
|
|
let(:status) { Fabricate(:status, visibility: parent_visibility) } |
|
|
|
|
let(:remote_reply_id) { nil } |
|
|
|
|
let(:remote_account) { nil } |
|
|
|
|
|
|
|
|
|
before do |
|
|
|
@ -14,6 +15,8 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do |
|
|
|
|
Fabricate(:status, thread: status, visibility: :private) |
|
|
|
|
Fabricate(:status, account: status.account, thread: status, visibility: :public) |
|
|
|
|
Fabricate(:status, account: status.account, thread: status, visibility: :private) |
|
|
|
|
|
|
|
|
|
Fabricate(:status, account: remote_account, thread: status, visibility: :public, uri: remote_reply_id) if remote_reply_id |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
describe 'GET #index' do |
|
|
|
@ -110,6 +113,20 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do |
|
|
|
|
expect(json[:first][:items].size).to eq 2 |
|
|
|
|
expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context 'with remote responses' do |
|
|
|
|
let(:remote_reply_id) { 'foo' } |
|
|
|
|
|
|
|
|
|
it 'returned items are all inlined local toots or are ids' do |
|
|
|
|
json = body_as_json |
|
|
|
|
|
|
|
|
|
expect(json[:first]).to be_a Hash |
|
|
|
|
expect(json[:first][:items]).to be_an Array |
|
|
|
|
expect(json[:first][:items].size).to eq 3 |
|
|
|
|
expect(json[:first][:items].all? { |item| item.is_a?(Hash) ? ActivityPub::TagManager.instance.local_uri?(item[:id]) : item.is_a?(String) }).to be true |
|
|
|
|
expect(json[:first][:items]).to include remote_reply_id |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|