2 changed files with 59 additions and 2 deletions
@ -0,0 +1,50 @@
|
||||
# frozen_string_literal: true |
||||
|
||||
require 'rails_helper' |
||||
|
||||
RSpec.describe ActivityPub::Parser::StatusParser do |
||||
subject { described_class.new(json) } |
||||
|
||||
let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', domain: 'example.com', uri: 'https://example.com/actor') } |
||||
let(:follower) { Fabricate(:account, username: 'bob') } |
||||
|
||||
let(:json) do |
||||
{ |
||||
'@context': 'https://www.w3.org/ns/activitystreams', |
||||
id: [ActivityPub::TagManager.instance.uri_for(sender), '#foo'].join, |
||||
type: 'Create', |
||||
actor: ActivityPub::TagManager.instance.uri_for(sender), |
||||
object: object_json, |
||||
}.with_indifferent_access |
||||
end |
||||
|
||||
let(:object_json) do |
||||
{ |
||||
id: [ActivityPub::TagManager.instance.uri_for(sender), 'post1'].join('/'), |
||||
type: 'Note', |
||||
to: [ |
||||
'https://www.w3.org/ns/activitystreams#Public', |
||||
ActivityPub::TagManager.instance.uri_for(follower), |
||||
], |
||||
content: '@bob lorem ipsum', |
||||
contentMap: { |
||||
EN: '@bob lorem ipsum', |
||||
}, |
||||
published: 1.hour.ago.utc.iso8601, |
||||
updated: 1.hour.ago.utc.iso8601, |
||||
tag: { |
||||
type: 'Mention', |
||||
href: ActivityPub::TagManager.instance.uri_for(follower), |
||||
}, |
||||
} |
||||
end |
||||
|
||||
it 'correctly parses status' do |
||||
expect(subject).to have_attributes( |
||||
text: '@bob lorem ipsum', |
||||
uri: [ActivityPub::TagManager.instance.uri_for(sender), 'post1'].join('/'), |
||||
reply: false, |
||||
language: :en |
||||
) |
||||
end |
||||
end |
||||
Loading…
Reference in new issue