mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 13:51:18 +08:00
REFACTOR: Migrate TwitterAuthenticator to use ManagedAuthenticator (#6739)
No changes to functionality. TwitterAuthenticator goes from 136 lines to 24, and all twitter-specific logic elsewhere has been deleted 🎉
This commit is contained in:
@ -9,20 +9,21 @@ describe Auth::TwitterAuthenticator do
|
||||
|
||||
auth_token = {
|
||||
info: {
|
||||
"email" => user.email,
|
||||
"username" => "test",
|
||||
"name" => "test",
|
||||
"nickname" => "minion",
|
||||
email: user.email,
|
||||
username: "test",
|
||||
name: "test",
|
||||
nickname: "minion",
|
||||
},
|
||||
"uid" => "123"
|
||||
uid: "123",
|
||||
provider: "twitter"
|
||||
}
|
||||
|
||||
result = auth.after_authenticate(auth_token)
|
||||
|
||||
expect(result.user.id).to eq(user.id)
|
||||
|
||||
info = TwitterUserInfo.find_by(user_id: user.id)
|
||||
expect(info.email).to eq(user.email)
|
||||
info = UserAssociatedAccount.find_by(provider_name: "twitter", user_id: user.id)
|
||||
expect(info.info["email"]).to eq(user.email)
|
||||
end
|
||||
|
||||
it 'can connect to a different existing user account' do
|
||||
@ -30,23 +31,24 @@ describe Auth::TwitterAuthenticator do
|
||||
user1 = Fabricate(:user)
|
||||
user2 = Fabricate(:user)
|
||||
|
||||
TwitterUserInfo.create!(user_id: user1.id, twitter_user_id: 100, screen_name: "boris")
|
||||
UserAssociatedAccount.create!(provider_name: "twitter", user_id: user1.id, provider_uid: 100)
|
||||
|
||||
hash = {
|
||||
info: {
|
||||
"email" => user1.email,
|
||||
"username" => "test",
|
||||
"name" => "test",
|
||||
"nickname" => "minion",
|
||||
email: user1.email,
|
||||
username: "test",
|
||||
name: "test",
|
||||
nickname: "minion",
|
||||
},
|
||||
"uid" => "100"
|
||||
uid: "100",
|
||||
provider: "twitter"
|
||||
}
|
||||
|
||||
result = authenticator.after_authenticate(hash, existing_account: user2)
|
||||
|
||||
expect(result.user.id).to eq(user2.id)
|
||||
expect(TwitterUserInfo.exists?(user_id: user1.id)).to eq(false)
|
||||
expect(TwitterUserInfo.exists?(user_id: user2.id)).to eq(true)
|
||||
expect(UserAssociatedAccount.exists?(provider_name: "twitter", user_id: user1.id)).to eq(false)
|
||||
expect(UserAssociatedAccount.exists?(provider_name: "twitter", user_id: user2.id)).to eq(true)
|
||||
end
|
||||
|
||||
context 'revoke' do
|
||||
@ -58,7 +60,7 @@ describe Auth::TwitterAuthenticator do
|
||||
end
|
||||
|
||||
it 'revokes correctly' do
|
||||
TwitterUserInfo.create!(user_id: user.id, twitter_user_id: 100, screen_name: "boris")
|
||||
UserAssociatedAccount.create!(provider_name: "twitter", user_id: user.id, provider_uid: 100)
|
||||
expect(authenticator.can_revoke?).to eq(true)
|
||||
expect(authenticator.revoke(user)).to eq(true)
|
||||
expect(authenticator.description_for_user(user)).to eq("")
|
||||
|
Reference in New Issue
Block a user