Reformat spec/requests/maintenance_spec.rb

This commit is contained in:
Eric Schultz 2021-02-24 11:40:50 -06:00 committed by Eric Schultz
parent 9d2ee08958
commit 16933dde08

View file

@ -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