Add test for `ServicesController`
This commit is contained in:
parent
fe6dff8ed6
commit
5a597fca5c
|
@ -0,0 +1,41 @@
|
|||
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
|
||||
it 'creates a service integration' do
|
||||
expect { subject }.to change { Service.count }.by(1)
|
||||
end
|
||||
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
|
||||
expect(flash[:error]).to eq("The Twitter account you are trying to connect is already connected to another #{APP_CONFIG['site_name']} account.")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue