2022-01-01 12:58:36 -08:00
require 'rails_helper'
describe ServicesController , type : :controller do
context 'successful Twitter sign in' do
let ( :user ) { FactoryBot . create ( :user ) }
before do
sign_in user
OmniAuth . config . test_mode = true
OmniAuth . config . mock_auth [ :twitter ] = OmniAuth :: AuthHash . new ( {
'provider' = > 'twitter' ,
'uid' = > '12' ,
'info' = > { 'nickname' = > 'jack' } ,
'credentials' = > { 'token' = > 'AAAA' , 'secret' = > 'BBBB' }
} )
request . env [ " omniauth.auth " ] = OmniAuth . config . mock_auth [ :twitter ]
end
after do
OmniAuth . config . mock_auth [ :twitter ] = nil
end
subject { get :create , params : { provider : 'twitter' } }
context 'no services connected' do
2022-01-01 13:10:13 -08:00
it 'creates a service integration' do
expect { subject } . to change { Service . count } . by ( 1 )
end
2022-01-01 12:58:36 -08:00
end
context 'a user has a service connected' do
let ( :other_user ) { FactoryBot . create ( :user ) }
let! ( :service ) { Services :: Twitter . create ( user : other_user , uid : 12 ) }
it 'shows an error when trying to attach a service account which is already connected' do
subject
2022-01-01 13:10:13 -08:00
expect ( flash [ :error ] ) . to eq ( " The Twitter account you are trying to connect is already connected to another #{ APP_CONFIG [ 'site_name' ] } account. If you are unable to disconnect the account yourself, please send us a Direct Message on Twitter: @retrospring. " )
2022-01-01 12:58:36 -08:00
end
end
end
end