From c778a60e4fe47647d97f64855fa8555fd5a5a0c8 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Tue, 30 May 2017 01:05:20 +0900 Subject: [PATCH] Cover Settings::TwoFactorAuthentication::RecoveryCodesController more (#3383) --- .../recovery_codes_controller_spec.rb | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb index 3d6f5faa..aa28cdf3 100644 --- a/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb @@ -5,21 +5,27 @@ require 'rails_helper' describe Settings::TwoFactorAuthentication::RecoveryCodesController do render_views - let(:user) { Fabricate(:user) } - before do - sign_in user, scope: :user - end - describe 'POST #create' do - it 'updates the codes and shows them on a view' do - before = user.otp_backup_codes + it 'updates the codes and shows them on a view when signed in' do + user = Fabricate(:user) + otp_backup_codes = user.generate_otp_backup_codes! + expect_any_instance_of(User).to receive(:generate_otp_backup_codes!) do |value| + expect(value).to eq user + otp_backup_codes + end + sign_in user, scope: :user post :create - user.reload - expect(user.otp_backup_codes).not_to eq(before) + expect(assigns(:recovery_codes)).to eq otp_backup_codes + expect(flash[:notice]).to eq 'Recovery codes successfully regenerated' expect(response).to have_http_status(:success) expect(response).to render_template(:index) end + + it 'redirects when not signed in' do + post :create + expect(response).to redirect_to '/auth/sign_in' + end end end