From a908f171e7a806fa521c4e42531cac3a2610e3ff Mon Sep 17 00:00:00 2001 From: KMY Date: Thu, 24 Aug 2023 08:15:51 +0900 Subject: [PATCH] Add bearcaps test --- spec/lib/activitypub/activity/create_spec.rb | 49 ++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index de07a490bb..354787f820 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -1188,5 +1188,54 @@ RSpec.describe ActivityPub::Activity::Create do expect(sender.statuses.count).to eq 0 end end + + context 'when bearcaps' do + subject { described_class.new(json, sender) } + + before do + stub_request(:get, 'https://example.com/statuses/1234567890') + .with(headers: { 'Authorization' => 'Bearer test_ohagi_token' }) + .to_return(status: 200, body: Oj.dump(object_json), headers: {}) + + subject.perform + end + + let!(:recipient) { Fabricate(:account) } + let(:object_json) do + { + id: 'https://example.com/statuses/1234567890', + type: 'Note', + content: 'Lorem ipsum', + to: ActivityPub::TagManager.instance.uri_for(recipient), + attachment: [ + { + type: 'Document', + mediaType: 'image/png', + url: 'http://example.com/attachment.png', + }, + ], + } + end + let(:json) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, + type: 'Create', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: "bear:?#{{ u: 'https://example.com/statuses/1234567890', t: 'test_ohagi_token' }.to_query}", + }.with_indifferent_access + end + + it 'creates status' do + status = sender.statuses.first + + expect(status).to_not be_nil + expect(status.text).to eq 'Lorem ipsum' + expect(status.mentions.map(&:account)).to include(recipient) + expect(status.mentions.count).to eq 1 + expect(status.visibility).to eq 'limited' + expect(status.media_attachments.map(&:remote_url)).to include('http://example.com/attachment.png') + end + end end end