about summary refs log tree commit diff
path: root/spec/lib
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-02-16 13:43:23 +0100
committerGitHub <noreply@github.com>2019-02-16 13:43:23 +0100
commitab9082b3325dfd193d7130d6c880e85ab2781bc0 (patch)
tree7593823272a7b35bbb2ea41206349e107d31cd26 /spec/lib
parent2769b5446681898e8332cb505f499dac2a6e5717 (diff)
parent59fa38a4f6b9f19d674b3f9da97253b586814f94 (diff)
Merge pull request #916 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/activitypub/activity/announce_spec.rb53
1 files changed, 47 insertions, 6 deletions
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index 54dd52a60..1725c2843 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,7 +1,7 @@
 require 'rails_helper'
 
 RSpec.describe ActivityPub::Activity::Announce do
-  let(:sender)    { Fabricate(:account) }
+  let(:sender)    { Fabricate(:account, followers_url: 'http://example.com/followers') }
   let(:recipient) { Fabricate(:account) }
   let(:status)    { Fabricate(:status, account: recipient) }
 
@@ -11,19 +11,60 @@ RSpec.describe ActivityPub::Activity::Announce do
       id: 'foo',
       type: 'Announce',
       actor: ActivityPub::TagManager.instance.uri_for(sender),
-      object: ActivityPub::TagManager.instance.uri_for(status),
+      object: object_json,
     }.with_indifferent_access
   end
 
-  describe '#perform' do
-    subject { described_class.new(json, sender) }
+  subject { described_class.new(json, sender) }
+
+  before do
+    sender.update(uri: ActivityPub::TagManager.instance.uri_for(sender))
+  end
 
+  describe '#perform' do
     before do
       subject.perform
     end
 
-    it 'creates a reblog by sender of status' do
-      expect(sender.reblogged?(status)).to be true
+    context 'a known status' do
+      let(:object_json) do
+        ActivityPub::TagManager.instance.uri_for(status)
+      end
+
+      it 'creates a reblog by sender of status' do
+        expect(sender.reblogged?(status)).to be true
+      end
+    end
+
+    context 'self-boost of a previously unknown status with missing attributedTo' do
+      let(:object_json) do
+        {
+          id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+          type: 'Note',
+          content: 'Lorem ipsum',
+          to: 'http://example.com/followers',
+        }
+      end
+
+      it 'creates a reblog by sender of status' do
+        expect(sender.reblogged?(sender.statuses.first)).to be true
+      end
+    end
+
+    context 'self-boost of a previously unknown status with correct attributedTo' do
+      let(:object_json) do
+        {
+          id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+          type: 'Note',
+          content: 'Lorem ipsum',
+          attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
+          to: 'http://example.com/followers',
+        }
+      end
+
+      it 'creates a reblog by sender of status' do
+        expect(sender.reblogged?(sender.statuses.first)).to be true
+      end
     end
   end
 end