summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-13 08:47:55 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-13 08:47:55 +0000
commitd93da8bed598249c67b71b3acdd4944952e80db2 (patch)
tree598b507e1be2a5c6aba787867477f6fe0235cf7a /spec
parent10d5da784b130f6227dd8074dfc51f9627293031 (diff)
parent22724418d350001e2683b68fad65186af783d3f2 (diff)
downloadgitlab-ce-d93da8bed598249c67b71b3acdd4944952e80db2.tar.gz
Merge branch 'rs-disable-2fa' into 'master'
Add User#disable_two_factor! This method encapsulates all the logic for disabling 2FA on a specific User model. See merge request !961
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/profiles/two_factor_auths_controller_spec.rb13
-rw-r--r--spec/factories.rb1
-rw-r--r--spec/models/user_spec.rb18
3 files changed, 22 insertions, 10 deletions
diff --git a/spec/controllers/profiles/two_factor_auths_controller_spec.rb b/spec/controllers/profiles/two_factor_auths_controller_spec.rb
index aa09f1a758d..f54706e3aa3 100644
--- a/spec/controllers/profiles/two_factor_auths_controller_spec.rb
+++ b/spec/controllers/profiles/two_factor_auths_controller_spec.rb
@@ -105,19 +105,12 @@ describe Profiles::TwoFactorAuthsController do
end
describe 'DELETE destroy' do
- let(:user) { create(:user, :two_factor) }
- let!(:codes) { user.generate_otp_backup_codes! }
+ let(:user) { create(:user, :two_factor) }
- it 'clears all 2FA-related fields' do
- expect(user).to be_two_factor_enabled
- expect(user.otp_backup_codes).not_to be_nil
- expect(user.encrypted_otp_secret).not_to be_nil
+ it 'disables two factor' do
+ expect(user).to receive(:disable_two_factor!)
delete :destroy
-
- expect(user).not_to be_two_factor_enabled
- expect(user.otp_backup_codes).to be_nil
- expect(user.encrypted_otp_secret).to be_nil
end
it 'redirects to profile_account_path' do
diff --git a/spec/factories.rb b/spec/factories.rb
index 578a2e4dc69..05e3211d551 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -32,6 +32,7 @@ FactoryGirl.define do
before(:create) do |user|
user.two_factor_enabled = true
user.otp_secret = User.generate_otp_secret(32)
+ user.generate_otp_backup_codes!
end
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 6d2423ae27a..16902317f10 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -217,6 +217,24 @@ describe User do
end
end
+ describe '#disable_two_factor!' do
+ it 'clears all 2FA-related fields' do
+ user = create(:user, :two_factor)
+
+ expect(user).to be_two_factor_enabled
+ expect(user.encrypted_otp_secret).not_to be_nil
+ expect(user.otp_backup_codes).not_to be_nil
+
+ user.disable_two_factor!
+
+ expect(user).not_to be_two_factor_enabled
+ expect(user.encrypted_otp_secret).to be_nil
+ expect(user.encrypted_otp_secret_iv).to be_nil
+ expect(user.encrypted_otp_secret_salt).to be_nil
+ expect(user.otp_backup_codes).to be_nil
+ end
+ end
+
describe 'projects' do
before do
@user = create :user