about summary refs log tree commit diff
path: root/spec/lib
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-03-08 00:54:50 +0100
committerEugen Rochko <eugen@zeonfederated.com>2019-03-08 00:54:50 +0100
commit3aaac4f134eb092baeb0ba5979bdb3abd702a4ee (patch)
tree166112abcd990ece652d0be5792be5d54edd58cc /spec/lib
parent054bbb3da21b2c76374eb921cba862adb8d5a0b3 (diff)
Do not allow adding votes to expired polls (#10214)
* Do not allow adding votes to expired polls

* Only validate expires_at on create
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/activitypub/activity/create_spec.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 56c7bfc61..3a1463d95 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -482,6 +482,28 @@ RSpec.describe ActivityPub::Activity::Create do
           expect(poll.reload.cached_tallies).to eq [1, 0]
         end
       end
+
+      context 'when a vote to an expired local poll' do
+        let(:poll) do
+          poll = Fabricate.build(:poll, options: %w(Yellow Blue), expires_at: 1.day.ago)
+          poll.save(validate: false)
+          poll
+        end
+        let!(:local_status) { Fabricate(:status, owned_poll: poll) }
+
+        let(:object_json) do
+          {
+            id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+            type: 'Note',
+            name: 'Yellow',
+            inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status)
+          }
+        end
+
+        it 'does not add a vote to the poll' do
+          expect(poll.votes.first).to be_nil
+        end
+      end
     end
 
     context 'when sender is followed by local users' do