logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 0e4ca51951c4cd3ea51e4983bb5c502850d3056f
parent: dde043f6cd1bf4fe97de678992000b1606e2620c
Author: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date:   Tue, 30 May 2017 01:07:07 +0900

Cover Settings::TwoFactorAuthenticationsController more (#3376)


Diffstat:

Mspec/controllers/settings/two_factor_authentications_controller_spec.rb82++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 56 insertions(+), 26 deletions(-)

diff --git a/spec/controllers/settings/two_factor_authentications_controller_spec.rb b/spec/controllers/settings/two_factor_authentications_controller_spec.rb @@ -6,47 +6,70 @@ describe Settings::TwoFactorAuthenticationsController do render_views let(:user) { Fabricate(:user) } - before do - sign_in user, scope: :user - end describe 'GET #show' do - describe 'when user requires otp for login already' do - it 'returns http success' do - user.update(otp_required_for_login: true) - get :show + context 'when signed in' do + before do + sign_in user, scope: :user + end - expect(response).to have_http_status(:success) + describe 'when user requires otp for login already' do + it 'returns http success' do + user.update(otp_required_for_login: true) + get :show + + expect(response).to have_http_status(:success) + end + end + + describe 'when user does not require otp for login' do + it 'returns http success' do + user.update(otp_required_for_login: false) + get :show + + expect(response).to have_http_status(:success) + end end end - describe 'when user does not require otp for login' do - it 'returns http success' do - user.update(otp_required_for_login: false) + context 'when not signed in' do + it 'redirects' do get :show - - expect(response).to have_http_status(:success) + expect(response).to redirect_to '/auth/sign_in' end end end describe 'POST #create' do - describe 'when user requires otp for login already' do - it 'redirects to show page' do - user.update(otp_required_for_login: true) - post :create + context 'when signed in' do + before do + sign_in user, scope: :user + end - expect(response).to redirect_to(settings_two_factor_authentication_path) + describe 'when user requires otp for login already' do + it 'redirects to show page' do + user.update(otp_required_for_login: true) + post :create + + expect(response).to redirect_to(settings_two_factor_authentication_path) + end end - end - describe 'when creation succeeds' do - it 'updates user secret' do - before = user.otp_secret - post :create + describe 'when creation succeeds' do + it 'updates user secret' do + before = user.otp_secret + post :create - expect(user.reload.otp_secret).not_to eq(before) - expect(response).to redirect_to(new_settings_two_factor_authentication_confirmation_path) + expect(user.reload.otp_secret).not_to eq(before) + expect(response).to redirect_to(new_settings_two_factor_authentication_confirmation_path) + end + end + end + + context 'when not signed in' do + it 'redirects' do + get :show + expect(response).to redirect_to '/auth/sign_in' end end end @@ -55,12 +78,19 @@ describe Settings::TwoFactorAuthenticationsController do before do user.update(otp_required_for_login: true) end - it 'turns off otp requirement' do + + it 'turns off otp requirement if signed in' do + sign_in user, scope: :user post :destroy expect(response).to redirect_to(settings_two_factor_authentication_path) user.reload expect(user.otp_required_for_login).to eq(false) end + + it 'redirects if not signed in' do + get :show + expect(response).to redirect_to '/auth/sign_in' + end end end