FIX: Do not raise exception if the authenticator email is missing

Followup to 296cdc53ee41bb58d0fe5c56df6fc1f7100dd7d4
This commit is contained in:
David Taylor 2019-08-14 12:08:59 +01:00
parent 92f2202e4a
commit 5755d3886f
2 changed files with 12 additions and 1 deletions

View File

@ -19,7 +19,7 @@ class Auth::Result
end
def email
@email.downcase
@email&.downcase
end
def failed?

View File

@ -140,6 +140,17 @@ describe Auth::ManagedAuthenticator do
result = authenticator.after_authenticate(hash)
expect(result.user.id).to eq(user.id)
end
it 'works if there is no email' do
expect {
result = authenticator.after_authenticate(hash.deep_merge(info: { email: nil }))
expect(result.user).to eq(nil)
expect(result.username).to eq("IAmGroot")
expect(result.email).to eq(nil)
}.to change { UserAssociatedAccount.count }.by(1)
expect(UserAssociatedAccount.last.user).to eq(nil)
expect(UserAssociatedAccount.last.info["nickname"]).to eq("IAmGroot")
end
end
describe "avatar on update" do