diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index c925bb66..a27ba0fc 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -13,7 +13,7 @@ def show # Checks whether the requested_page exists in app/views/pages/*.html.haml def whitelist_page(requested_page) - raise "Invalid page: #{requested_page}" unless ::STATIC_PAGES.include?(requested_page.to_s) + raise ActionController::RoutingError.new('Not Found') unless ::STATIC_PAGES.include?(requested_page.to_s) requested_page end @@ -21,7 +21,7 @@ def whitelist_page(requested_page) def whitelist_layout(requested_layout) return 'application' if requested_layout.nil? - raise "Invalid layout: #{requested_layout}" unless ::STATIC_PAGE_LAYOUTS.include?(requested_layout.to_s) + raise ActionController::RoutingError.new('Not Found') unless ::STATIC_PAGE_LAYOUTS.include?(requested_layout.to_s) requested_layout end diff --git a/spec/controllers/pages_controller_spec.rb b/spec/controllers/pages_controller_spec.rb index b49a0080..9a802386 100644 --- a/spec/controllers/pages_controller_spec.rb +++ b/spec/controllers/pages_controller_spec.rb @@ -1,24 +1,21 @@ require 'spec_helper' -RSpec.describe PagesController, type: :controller, skip: true do +RSpec.describe PagesController, type: :controller do + let(:unregistered_user) { Fabricate(:user, state: User::REGISTRATION) } + it 'should be able to access privacy policy while user is logged in but not registered' do - unregisterd_user = Fabricate(:user, state: User::REGISTRATION) - controller.send :sign_in, unregisterd_user + controller.send :sign_in, unregistered_user get :show, page: 'tos', layout: 'application' expect(response).to be_success end it 'fails when presented an non-whitelisted page' do - unregisterd_user = Fabricate(:user, state: User::REGISTRATION) - controller.send :sign_in, unregisterd_user - - expect { get :show, page: 'IMNOTREAL' }.to raise_error 'Invalid page: IMNOTREAL' + controller.send :sign_in, unregistered_user + expect { get :show, page: 'IMNOTREAL' }.to raise_error ActionController::RoutingError end it 'fails when presented an non-whitelisted layout' do - unregisterd_user = Fabricate(:user, state: User::REGISTRATION) - controller.send :sign_in, unregisterd_user - - expect { get :show, page: 'tos', layout: 'IMNOTREAL' }.to raise_error 'Invalid layout: IMNOTREAL' + controller.send :sign_in, unregistered_user + expect { get :show, page: 'tos', layout: 'IMNOTREAL' }.to raise_error ActionController::RoutingError end end