summaryrefslogtreecommitdiffstats
path: root/spec/lib
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-03-04 01:13:42 +0100
committerGitHub <noreply@github.com>2019-03-04 01:13:42 +0100
commit0e6998da3cdc0ac73845d1c3c3c4c75972ea28ee (patch)
tree497d0cd32dccab53e3ec27249d81d1d3cca9d772 /spec/lib
parent3cf98aac660aaed9acd533cac07c0fc092bbec5a (diff)
Add tests for ActivityPub poll processing (#10143)
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/activitypub/activity/create_spec.rb42
1 files changed, 41 insertions, 1 deletions
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 26cb84871c3..ac6237c865c 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Create do
- let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers') }
+ let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', domain: 'example.com', uri: 'https://example.com/actor') }
let(:json) do
{
@@ -407,6 +407,46 @@ RSpec.describe ActivityPub::Activity::Create do
expect(status).to_not be_nil
end
end
+
+ context 'with poll' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Question',
+ content: 'Which color was the submarine?',
+ oneOf: [
+ {
+ name: 'Yellow',
+ replies: {
+ type: 'Collection',
+ totalItems: 10,
+ },
+ },
+ {
+ name: 'Blue',
+ replies: {
+ type: 'Collection',
+ totalItems: 3,
+ }
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ expect(status.poll).to_not be_nil
+ end
+
+ it 'creates a poll' do
+ poll = sender.polls.first
+ expect(poll).to_not be_nil
+ expect(poll.status).to_not be_nil
+ expect(poll.options).to eq %w(Yellow Blue)
+ expect(poll.cached_tallies).to eq [10, 3]
+ end
+ end
end
context 'when sender is followed by local users' do