73 lines
1.9 KiB
Ruby
73 lines
1.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "Welcome", :js => true, :type => :feature, :capybara_feature => true do
|
|
|
|
subject { page }
|
|
|
|
before(:all) do
|
|
Capybara.javascript_driver = :poltergeist
|
|
Capybara.current_driver = Capybara.javascript_driver
|
|
Capybara.default_wait_time = 10
|
|
end
|
|
|
|
let(:user) { FactoryGirl.create(:user, email: 'twitter_user1@jamkazam.com') }
|
|
let(:user2) { FactoryGirl.create(:user, email: 'twitter_user2@jamkazam.com') }
|
|
let(:twitter_auth) {
|
|
{ :provider => "twitter",
|
|
:uid => "1234",
|
|
:credentials => {:token => "twitter_token", :secret => 'twitter_secret'} }
|
|
}
|
|
|
|
|
|
before(:each) do
|
|
|
|
OmniAuth.config.mock_auth[:twitter] = OmniAuth::AuthHash.new(twitter_auth)
|
|
User.where(email: 'twitter_user1@jamkazam.com').delete_all
|
|
User.where(email: 'twitter_user2@jamkazam.com').delete_all
|
|
|
|
emulate_client
|
|
sign_in_poltergeist user
|
|
visit "/"
|
|
should_be_at_root
|
|
end
|
|
|
|
it "redirects back when done, and updates user_auth" do
|
|
visit '/auth/twitter'
|
|
should_be_at_root
|
|
sleep 1
|
|
user.reload
|
|
auth = user.user_authorization('twitter')
|
|
auth.should_not be_nil
|
|
auth.uid.should == '1234'
|
|
auth.token.should == 'twitter_token'
|
|
auth.secret.should == 'twitter_secret'
|
|
|
|
visit '/auth/twitter'
|
|
should_be_at_root
|
|
user.reload
|
|
auth = user.user_authorization('twitter')
|
|
auth.uid.should == '1234'
|
|
auth.token.should == 'twitter_token'
|
|
auth.secret.should == 'twitter_secret'
|
|
end
|
|
|
|
it "shows error when two users try to auth same twitter account" do
|
|
visit '/auth/twitter'
|
|
should_be_at_root
|
|
sleep 1
|
|
user.reload
|
|
auth = user.user_authorization('twitter')
|
|
auth.uid.should == '1234'
|
|
|
|
sign_out
|
|
|
|
sign_in_poltergeist user2
|
|
visit '/'
|
|
should_be_at_root
|
|
visit '/auth/twitter'
|
|
find('li', text: 'This twitter account is already associated with someone else')
|
|
end
|
|
|
|
end
|
|
|