summaryrefslogtreecommitdiff
path: root/spec/models/user_spec.rb
diff options
context:
space:
mode:
authorBrett Walker <brett@digitalmoksha.com>2017-09-11 19:12:57 +0200
committerBrett Walker <brett@digitalmoksha.com>2017-09-23 15:24:53 +0200
commita9b31786971d83c193a1430df7c5c4550ba5aa6b (patch)
treef44fc10f5eb558644dfa3e246d88e3b721ebd03d /spec/models/user_spec.rb
parent4457ae827251904c28a30c3db06e05495a42b484 (diff)
downloadgitlab-ce-a9b31786971d83c193a1430df7c5c4550ba5aa6b.tar.gz
Make GPG signature verification work with non-primary email (#36959)
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r--spec/models/user_spec.rb56
1 files changed, 42 insertions, 14 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index c1affa812aa..e047027adab 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1093,6 +1093,48 @@ describe User do
end
end
+ describe '#all_emails' do
+ let(:user) { create(:user) }
+
+ it 'returns all emails' do
+ email_confirmed = create :email, user: user, confirmed_at: Time.now
+ email_unconfirmed = create :email, user: user
+ user.reload
+ expect(user.all_emails).to eq([user.email, email_unconfirmed.email, email_confirmed.email])
+ end
+ end
+
+ describe '#all_verified_emails' do
+ let(:user) { create(:user) }
+
+ it 'returns only confirmed emails' do
+ email_confirmed = create :email, user: user, confirmed_at: Time.now
+ email_unconfirmed = create :email, user: user
+ user.reload
+ expect(user.all_verified_emails).to eq([user.email, email_confirmed.email])
+ end
+ end
+
+ describe '#verified_email?' do
+ let(:user) { create(:user) }
+
+ it 'returns true when the email is verified/confirmed' do
+ email_confirmed = create :email, user: user, confirmed_at: Time.now
+ email_unconfirmed = create :email, user: user
+ user.reload
+
+ expect(user.verified_email?(user.email)).to be_truthy
+ expect(user.verified_email?(email_confirmed.email)).to be_truthy
+ end
+
+ it 'returns false when the email is not verified/confirmed' do
+ email_unconfirmed = create :email, user: user
+ user.reload
+
+ expect(user.verified_email?(email_unconfirmed.email)).to be_falsy
+ end
+ end
+
describe '#requires_ldap_check?' do
let(:user) { described_class.new }
@@ -2073,20 +2115,6 @@ describe User do
end
end
- describe '#verified_email?' do
- it 'returns true when the email is the primary email' do
- user = build :user, email: 'email@example.com'
-
- expect(user.verified_email?('email@example.com')).to be true
- end
-
- it 'returns false when the email is not the primary email' do
- user = build :user, email: 'email@example.com'
-
- expect(user.verified_email?('other_email@example.com')).to be false
- end
- end
-
describe '#sync_attribute?' do
let(:user) { described_class.new }