From 16933dde081dd49bc8ff6718db9ba5ceada18c8c Mon Sep 17 00:00:00 2001 From: Eric Schultz Date: Wed, 24 Feb 2021 11:40:50 -0600 Subject: [PATCH] Reformat spec/requests/maintenance_spec.rb --- spec/requests/maintenance_spec.rb | 176 +++++++++++++++++------------- 1 file changed, 99 insertions(+), 77 deletions(-) diff --git a/spec/requests/maintenance_spec.rb b/spec/requests/maintenance_spec.rb index 2d90236e..e1f9879c 100644 --- a/spec/requests/maintenance_spec.rb +++ b/spec/requests/maintenance_spec.rb @@ -4,96 +4,118 @@ # Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE require 'rails_helper' require 'controllers/support/shared_user_context' - +# rubocop:disable RSpec/InstanceVariable +# rubocop:disable RSpec/DescribeClass describe 'Maintenance Mode' do - page = 'http://commet' - token = 'thoathioa' - include_context :shared_user_context + page = 'http://commet' + token = 'thoathioa' + include_context :shared_user_context - describe OnboardController, type: :controller do - describe '(Onboard is just a basic example controller)' - it 'not in maintenance mode' do - get :index - assert_response 200 - end + describe OnboardController, type: :controller do + describe '(Onboard is just a basic example controller)' + it 'not in maintenance mode' do + get :index + assert_response 200 + end - describe 'in maintenance' do - before(:each) do - Houdini.maintenance = Houdini::Maintenance.new(active:true, token: token, page: page) - end + describe 'in maintenance' do + before do + Houdini.maintenance = Houdini::Maintenance.new(active: true, token: token, page: page) + end - it 'redirects for onboard' do - get :index - assert_redirected_to page - end + it 'redirects for onboard' do + get :index + assert_redirected_to page + end - it 'allows access to non-sign_in pages if youre logged in' do - sign_in user_as_np_associate - get :index - assert_response 200 - end - end - end + it 'allows access to non-sign_in pages if youre logged in' do + sign_in user_as_np_associate + get :index + assert_response 200 + end + end + end - describe Users::SessionsController, type: :controller do - after(:each) do - Houdini.maintenance.active = false - end - describe 'in maintenance' do - include_context :shared_user_context + describe Users::SessionsController, type: :controller do + after do + Houdini.maintenance.active = false + end - before(:each) do - @request.env['devise.mapping'] = Devise.mappings[:user] - end + describe 'in maintenance' do + include_context :shared_user_context - describe 'in maintenance' do - before(:each) do - Houdini.maintenance = Houdini::Maintenance.new(active:true, token: token, page: page) - end + before do + @request.env['devise.mapping'] = Devise.mappings[:user] + end - it 'redirects sign_in if the token is wrong' do - get(:new, params: { maintenance_token: "#{token}3" }) - expect(response.code).to eq '302' - expect(response.location).to eq page - end + describe 'in maintenance' do + before do + Houdini.maintenance = Houdini::Maintenance.new(active: true, token: token, page: page) + end - it 'redirects for login' do - get(:new) - expect(response.code).to eq '302' - expect(response.location).to eq page - end + describe 'redirects sign_in if the token is wrong' do + subject do + get(:new, params: { maintenance_token: "#{token}3" }) + response + end - it 'redirects sign_in if the token is passed in wrong param' do - get(:new, params: { maintnancerwrwer_token: token.to_s }) - expect(response.code).to eq '302' - expect(response.location).to eq page - end + it { is_expected.to have_attributes(code: '302', location: page) } + end - it 'allows sign_in if the token is passed' do - get(:new, params: { maintenance_token: token.to_s }) - expect(response.code).to eq '200' - end + describe 'redirects to sign_in' do + subject do + get(:new) + response + end - it 'allows sign_in.json' do - get(:new, params: { maintenance_token: token.to_s, format: 'json' }) - expect(response.code).to eq '200' - end - end - end + it { is_expected.to have_attributes(code: '302', location: page) } + end - describe 'in maintenance without maintenance_token set' do - before(:each) do - @request.env['devise.mapping'] = Devise.mappings[:user] - end - before(:each) do - Houdini.maintenance = Houdini::Maintenance.new(active:true, token: nil, page: page) - end + describe 'redirects to sign_in if token passed on wrong param' do + subject do + get(:new, params: { maintnancerwrwer_token: token.to_s }) + response + end - it 'redirects sign_in if the token is nil' do - get(:new) - expect(response.code).to eq '302' - expect(response.location).to eq page - end - end - end + it { is_expected.to have_attributes(code: '302', location: page) } + end + + describe 'allows sign_in if the token is passed' do + subject do + get(:new, params: { maintenance_token: token.to_s }) + response + end + + it { is_expected.to have_attributes(code: '200') } + end + + describe 'allows sign_in.json if the token is passed' do + subject do + get(:new, params: { maintenance_token: token.to_s, format: 'json' }) + response + end + + it { is_expected.to have_attributes(code: '200') } + end + end + end + + describe 'in maintenance without maintenance_token set' do + before do + @request.env['devise.mapping'] = Devise.mappings[:user] + Houdini.maintenance = Houdini::Maintenance.new(active: true, token: nil, page: page) + end + + describe 'redirects sign_in if the token is nil' do + subject do + get(:new) + response + end + + it { is_expected.to have_attributes(code: '302', location: page) } + end + end + end end + +# rubocop:enable all