mirror of
https://github.com/discourse/discourse.git
synced 2024-12-19 08:25:58 +08:00
37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe UserAuthenticator do
|
|
let(:user) { Fabricate(:user, email: 'test@discourse.org') }
|
|
|
|
describe "#finish" do
|
|
before do
|
|
SiteSetting.enable_google_oauth2_logins = true
|
|
end
|
|
|
|
it "should execute provider's callback" do
|
|
user.update!(email: 'test@gmail.com')
|
|
|
|
authenticator = UserAuthenticator.new(user, { authentication: {
|
|
authenticator_name: Auth::GoogleOAuth2Authenticator.new.name,
|
|
email: user.email,
|
|
email_valid: true,
|
|
extra_data: { google_user_id: 1 }
|
|
}})
|
|
|
|
expect { authenticator.finish }.to change { GoogleUserInfo.count }.by(1)
|
|
end
|
|
|
|
describe "when session's email is different from user's email" do
|
|
it "should not execute provider's callback" do
|
|
authenticator = UserAuthenticator.new(user, { authentication: {
|
|
authenticator_name: Auth::GoogleOAuth2Authenticator.new.name,
|
|
email: 'test@gmail.com',
|
|
email_valid: true
|
|
}})
|
|
|
|
expect { authenticator.finish }.to_not change { GoogleUserInfo.count }
|
|
end
|
|
end
|
|
end
|
|
end
|