File tree Expand file tree Collapse file tree 4 files changed +34
-4
lines changed
Expand file tree Collapse file tree 4 files changed +34
-4
lines changed Original file line number Diff line number Diff line change @@ -178,10 +178,10 @@ def handle_exceptions(e)
178178 case e
179179 when JSONAPI ::Exceptions ::Error
180180 render_errors ( e . errors )
181- else # raise all other exceptions
182- # :nocov:
183- fail e
184- # :nocov:
181+ else
182+ internal_server_error = JSONAPI :: Exceptions :: InternalServerError . new ( e )
183+ Rails . logger . error { "Internal Server Error: #{ e . message } #{ e . backtrace . join ( " \n " ) } " }
184+ render_errors ( internal_server_error . errors )
185185 end
186186 end
187187
Original file line number Diff line number Diff line change @@ -3270,4 +3270,13 @@ def test_get_namespaced_model_matching_resource
32703270 assert_response :success
32713271 assert_equal 'customers' , json_response [ 'data' ] [ 0 ] [ 'type' ]
32723272 end
3273+ end
3274+
3275+ class Api ::V7 ::CategoriesControllerTest < ActionController ::TestCase
3276+ def test_uncaught_error_in_controller
3277+
3278+ get :show , { id : '1' }
3279+ assert_response 500
3280+ assert_match /Internal Server Error/ , json_response [ 'errors' ] [ 0 ] [ 'detail' ]
3281+ end
32733282end
Original file line number Diff line number Diff line change @@ -565,6 +565,15 @@ class SubSpecialError < PostsController::SpecialError; end
565565 head :forbidden
566566 end
567567
568+ def handle_exceptions ( e )
569+ case e
570+ when PostsController ::SpecialError
571+ raise e
572+ else
573+ super ( e )
574+ end
575+ end
576+
568577 #called by test_on_server_error
569578 def self . set_callback_message ( error )
570579 @callback_message = "Sent from method"
@@ -758,6 +767,9 @@ class LineItemsController < JSONAPI::ResourceController
758767 class OrderFlagsController < JSONAPI ::ResourceController
759768 end
760769
770+ class CategoriesController < JSONAPI ::ResourceController
771+ end
772+
761773 class ClientsController < JSONAPI ::ResourceController
762774 end
763775 end
@@ -1406,6 +1418,14 @@ class ClientResource < JSONAPI::Resource
14061418 has_many :purchase_orders
14071419 end
14081420
1421+ class CategoryResource < CategoryResource
1422+ attribute :name
1423+
1424+ # Raise exception for failure in controller
1425+ def name
1426+ fail "Something Exceptional Happened"
1427+ end
1428+ end
14091429 end
14101430
14111431 module V8
Original file line number Diff line number Diff line change @@ -229,6 +229,7 @@ class CatResource < JSONAPI::Resource
229229 jsonapi_resources :customers
230230 jsonapi_resources :purchase_orders
231231 jsonapi_resources :line_items
232+ jsonapi_resources :categories
232233
233234 jsonapi_resources :clients
234235 end
You can’t perform that action at this time.
0 commit comments