diff options
author | ThibG <thib@sitedethib.com> | 2019-02-28 22:02:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-28 22:02:36 +0100 |
commit | b969b150e8f095dc91c19c7381923c2c19edb968 (patch) | |
tree | 015d70b4b633fadf70cab9d0a0b0fbd55e6456ae /spec/serializers | |
parent | 76ed481aa7b67d624675cdaa85bac583853fd24d (diff) | |
parent | 2267eee356a3d2b8ebb20892c5182b6f8169403e (diff) |
Merge pull request #932 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'spec/serializers')
-rw-r--r-- | spec/serializers/activitypub/note_spec.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_spec.rb new file mode 100644 index 000000000..55bfbc16b --- /dev/null +++ b/spec/serializers/activitypub/note_spec.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::NoteSerializer do + let!(:account) { Fabricate(:account) } + let!(:other) { Fabricate(:account) } + let!(:parent) { Fabricate(:status, account: account, visibility: :public) } + let!(:reply1) { Fabricate(:status, account: account, thread: parent, visibility: :public) } + let!(:reply2) { Fabricate(:status, account: account, thread: parent, visibility: :public) } + let!(:reply3) { Fabricate(:status, account: other, thread: parent, visibility: :public) } + let!(:reply4) { Fabricate(:status, account: account, thread: parent, visibility: :public) } + let!(:reply5) { Fabricate(:status, account: account, thread: parent, visibility: :direct) } + + before(:each) do + @serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter) + end + + subject { JSON.parse(@serialization.to_json) } + + it 'has a Note type' do + expect(subject['type']).to eql('Note') + end + + it 'has a replies collection' do + expect(subject['replies']['type']).to eql('Collection') + end + + it 'has a replies collection with a first Page' do + expect(subject['replies']['first']['type']).to eql('CollectionPage') + end + + it 'includes public self-replies in its replies collection' do + expect(subject['replies']['first']['items']).to include(reply1.uri, reply2.uri, reply4.uri) + end + + it 'does not include replies from others in its replies collection' do + expect(subject['replies']['first']['items']).to_not include(reply3.uri) + end + + it 'does not include replies with direct visibility in its replies collection' do + expect(subject['replies']['first']['items']).to_not include(reply5.uri) + end +end |