@ -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