From cd0dc7a7110dd6b755c11c140537479db2d76072 Mon Sep 17 00:00:00 2001 From: Anna Anks Nowak Date: Tue, 22 Mar 2016 23:12:46 +0100 Subject: [PATCH] add tests for Facebook log in [#90] --- test/integration/sign_in_sign_out_test.rb | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/integration/sign_in_sign_out_test.rb b/test/integration/sign_in_sign_out_test.rb index d0b226f..d11136e 100644 --- a/test/integration/sign_in_sign_out_test.rb +++ b/test/integration/sign_in_sign_out_test.rb @@ -17,6 +17,41 @@ class SignInSignOutTest < ActionDispatch::IntegrationTest assert_equal current_path, root_path end + describe "Facebook" do + setup do + OmniAuth.config.test_mode = true + OmniAuth.config.add_mock( + :facebook, + provider: 'facebook', + uid: '123545', + info: + { + first_name: 'Facebook', + last_name: 'User' + } + ) + OmniAuth.config.on_failure = Proc.new { |env| + OmniAuth::FailureEndpoint.new(env).redirect_to_failure + } + end + + test "user can log in with Facebook account" do + visit root_path + click_link t('user.log_in_fb') + assert has_content? t('user.form.login_success') + assert has_content? "#{t('user.logged_in_as')} Facebook User" + end + + test "user can log in with Facebook but resign during the process" do + OmniAuth.config.mock_auth[:facebook] = :invalid_credentials + visit root_path + click_link t('user.log_in_fb') + assert has_content? t('user.form.login_fail') + assert_not has_content? t('user.logged_in_as') + assert has_content? t('user.not_loggedin') + end + end + test "non-logged in user doesn't see any name on the page" do visit login_path assert has_content? t('user.not_loggedin')