Skip to content

Commit 8768cd0

Browse files
committed
Merge pull request coderwall#295 from rohitpaulk/fix-pages-controller
Render 404 for invalid pages, not 500
2 parents 3d2d1cd + f0ce45d commit 8768cd0

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

app/controllers/pages_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ def show
1313

1414
# Checks whether the requested_page exists in app/views/pages/*.html.haml
1515
def whitelist_page(requested_page)
16-
raise "Invalid page: #{requested_page}" unless ::STATIC_PAGES.include?(requested_page.to_s)
16+
raise ActionController::RoutingError.new('Not Found') unless ::STATIC_PAGES.include?(requested_page.to_s)
1717

1818
requested_page
1919
end
2020

2121
def whitelist_layout(requested_layout)
2222
return 'application' if requested_layout.nil?
2323

24-
raise "Invalid layout: #{requested_layout}" unless ::STATIC_PAGE_LAYOUTS.include?(requested_layout.to_s)
24+
raise ActionController::RoutingError.new('Not Found') unless ::STATIC_PAGE_LAYOUTS.include?(requested_layout.to_s)
2525

2626
requested_layout
2727
end
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
require 'spec_helper'
22

3-
RSpec.describe PagesController, type: :controller, skip: true do
3+
RSpec.describe PagesController, type: :controller do
4+
let(:unregistered_user) { Fabricate(:user, state: User::REGISTRATION) }
5+
46
it 'should be able to access privacy policy while user is logged in but not registered' do
5-
unregisterd_user = Fabricate(:user, state: User::REGISTRATION)
6-
controller.send :sign_in, unregisterd_user
7+
controller.send :sign_in, unregistered_user
78
get :show, page: 'tos', layout: 'application'
89
expect(response).to be_success
910
end
1011

1112
it 'fails when presented an non-whitelisted page' do
12-
unregisterd_user = Fabricate(:user, state: User::REGISTRATION)
13-
controller.send :sign_in, unregisterd_user
14-
15-
expect { get :show, page: 'IMNOTREAL' }.to raise_error 'Invalid page: IMNOTREAL'
13+
controller.send :sign_in, unregistered_user
14+
expect { get :show, page: 'IMNOTREAL' }.to raise_error ActionController::RoutingError
1615
end
1716

1817
it 'fails when presented an non-whitelisted layout' do
19-
unregisterd_user = Fabricate(:user, state: User::REGISTRATION)
20-
controller.send :sign_in, unregisterd_user
21-
22-
expect { get :show, page: 'tos', layout: 'IMNOTREAL' }.to raise_error 'Invalid layout: IMNOTREAL'
18+
controller.send :sign_in, unregistered_user
19+
expect { get :show, page: 'tos', layout: 'IMNOTREAL' }.to raise_error ActionController::RoutingError
2320
end
2421
end

0 commit comments

Comments
 (0)