@ -6,6 +6,8 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
let ( :user ) { Fabricate ( :user , account : Fabricate ( :account , username : 'alice' ) ) }
let ( :user ) { Fabricate ( :user , account : Fabricate ( :account , username : 'alice' ) ) }
let ( :app ) { Fabricate ( :application , name : 'Test app' , website : 'http://testapp.com' ) }
let ( :app ) { Fabricate ( :application , name : 'Test app' , website : 'http://testapp.com' ) }
let ( :token ) { Fabricate ( :accessible_access_token , resource_owner_id : user . id , application : app , scopes : 'read:accounts' ) }
let ( :token ) { Fabricate ( :accessible_access_token , resource_owner_id : user . id , application : app , scopes : 'read:accounts' ) }
let ( :alice ) { Fabricate ( :account ) }
let ( :bob ) { Fabricate ( :account ) }
context 'with an oauth token' do
context 'with an oauth token' do
before do
before do
@ -16,14 +18,28 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
let ( :status ) { Fabricate ( :status , account : user . account ) }
let ( :status ) { Fabricate ( :status , account : user . account ) }
before do
before do
Fabricate ( :status , reblog_of_id : status . id )
Fabricate ( :status , account : alice , reblog_of_id : status . id )
Fabricate ( :status , account : bob , reblog_of_id : status . id )
end
end
it 'returns http success' do
it 'returns http success' do
get :index , params : { status_id : status . id , limit : 1 }
get :index , params : { status_id : status . id , limit : 2 }
expect ( response ) . to have_http_status ( 200 )
expect ( response ) . to have_http_status ( 200 )
expect ( response . headers [ 'Link' ] . links . size ) . to eq ( 2 )
expect ( response . headers [ 'Link' ] . links . size ) . to eq ( 2 )
end
end
it 'returns accounts who reblogged the status' do
get :index , params : { status_id : status . id , limit : 2 }
expect ( body_as_json . size ) . to eq 2
expect ( [ body_as_json [ 0 ] [ :id ] , body_as_json [ 1 ] [ :id ] ] ) . to match_array ( [ alice . id . to_s , bob . id . to_s ] )
end
it 'does not return blocked users' do
user . account . block! ( bob )
get :index , params : { status_id : status . id , limit : 2 }
expect ( body_as_json . size ) . to eq 1
expect ( body_as_json [ 0 ] [ :id ] ) . to eq alice . id . to_s
end
end
end
end
end