diff options
| author | Vlatka Pavisic | 2017-04-25 14:10:37 +0200 | 
|---|---|---|
| committer | Vlatka Pavisic | 2017-04-25 14:10:45 +0200 | 
| commit | d6d5884aed86156735cb1727f66d229664b675fd (patch) | |
| tree | fa79160674cabcb19d2c918202d8d311f841e684 | |
| parent | cf73ce3becb8670524975e5561a498cae620017f (diff) | |
| download | chouette-core-d6d5884aed86156735cb1727f66d229664b675fd.tar.bz2 | |
Refs #3033 : 403 page and ErrorsController tests
| -rw-r--r-- | app/controllers/errors_controller.rb | 6 | ||||
| -rw-r--r-- | config/routes.rb | 10 | ||||
| -rw-r--r-- | spec/controllers/errors_controller_spec.rb | 41 | 
3 files changed, 48 insertions, 9 deletions
| diff --git a/app/controllers/errors_controller.rb b/app/controllers/errors_controller.rb index accf119a3..94e0d7b4c 100644 --- a/app/controllers/errors_controller.rb +++ b/app/controllers/errors_controller.rb @@ -1,14 +1,14 @@  class ErrorsController < ApplicationController    def not_found -    render template: 'errors/not_found', status: 404, formats: [:html] +    render status: 404    end    def server_error -    render template: 'errors/server_error', status: 500, formats: [:html] +    render status: 500    end    def not_allowed -    render template: 'errors/not_found', status: 403, formats: [:html] +    render status: 403    end  end diff --git a/config/routes.rb b/config/routes.rb index 538c069ed..5b9cf0ea8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -213,11 +213,9 @@ ChouetteIhm::Application.routes.draw do    get '/help/(*slug)' => 'help#show' -  if Rails.env.production? -    get '404', to: 'errors#not_found' -    get '403', to: 'errors#not_allowed' -    get '422', to: 'errors#server_error' -    get '500', to: 'errors#server_error' -  end +  match '/404', to: 'errors#not_found', via: :all +  match '/403', to: 'errors#not_allowed', via: :all +  match '/422', to: 'errors#server_error', via: :all +  match '/500', to: 'errors#server_error', via: :all  end diff --git a/spec/controllers/errors_controller_spec.rb b/spec/controllers/errors_controller_spec.rb new file mode 100644 index 000000000..558fd0aa4 --- /dev/null +++ b/spec/controllers/errors_controller_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper' + +RSpec.describe ErrorsController, type: :controller do +  login_user + +  describe 'GET not_found' do +    before(:each) { get 'not_found' } + +    it 'renders the not_found template' do +      expect(response).to render_template('not_found') +    end + +    it 'returns 404 status code' do +      expect(response).to have_http_status(404) +    end +  end + +  describe 'GET not_allowed' do +    before(:each) { get 'not_allowed' } + +    it 'renders the not_allowed template' do +      expect(response).to render_template('not_allowed') +    end + +    it 'returns 403 status code' do +      expect(response).to have_http_status(403) +    end +  end + +  describe 'GET server_error' do +    before(:each) { get 'server_error' } + +    it 'renders the server_error template' do +      expect(response).to render_template('server_error') +    end + +    it 'returns 500 status code' do +      expect(response).to have_http_status(500) +    end +  end +end | 
