diff options
author | Genadi Samokovarov <gsamokovarov@gmail.com> | 2018-12-29 17:27:33 +0200 |
---|---|---|
committer | Genadi Samokovarov <gsamokovarov@gmail.com> | 2019-04-19 14:15:22 +0900 |
commit | a3110fe20bc418034332bd01165df7fe6f20258e (patch) | |
tree | 2bbddbe477f6078d1d75f9614c40953dc4ad09a6 /actionpack | |
parent | 54df392bc51dcf424f07ccc10157a5969256ba73 (diff) | |
download | rails-a3110fe20bc418034332bd01165df7fe6f20258e.tar.gz rails-a3110fe20bc418034332bd01165df7fe6f20258e.tar.bz2 rails-a3110fe20bc418034332bd01165df7fe6f20258e.zip |
Drop the ambiguous `ActiveSupport::ActionableError#===` check
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb | 24 | ||||
-rw-r--r-- | actionpack/test/dispatch/debug_exceptions_test.rb | 31 |
2 files changed, 42 insertions, 13 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb b/actionpack/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb index e181b6c539..b6c6d2f50d 100644 --- a/actionpack/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb +++ b/actionpack/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb @@ -1,15 +1,13 @@ -<% if ActiveSupport::ActionableError === exception %> - <% actions = ActiveSupport::ActionableError.actions(exception) %> +<% actions = ActiveSupport::ActionableError.actions(exception) %> - <% if actions.any? %> - <div class="actions"> - <% actions.each do |action, _| %> - <%= button_to action, ActionDispatch::ActionableExceptions.endpoint, params: { - error: exception.class.name, - action: action, - location: request.path - } %> - <% end %> - </div> - <% end %> +<% if actions.any? %> + <div class="actions"> + <% actions.each do |action, _| %> + <%= button_to action, ActionDispatch::ActionableExceptions.endpoint, params: { + error: exception.class.name, + action: action, + location: request.path + } %> + <% end %> + </div> <% end %> diff --git a/actionpack/test/dispatch/debug_exceptions_test.rb b/actionpack/test/dispatch/debug_exceptions_test.rb index 2812b1b614..5ae8a20ae4 100644 --- a/actionpack/test/dispatch/debug_exceptions_test.rb +++ b/actionpack/test/dispatch/debug_exceptions_test.rb @@ -5,6 +5,18 @@ require "abstract_unit" class DebugExceptionsTest < ActionDispatch::IntegrationTest InterceptedErrorInstance = StandardError.new + class CustomActionableError < StandardError + include ActiveSupport::ActionableError + + action "Action 1" do + nil + end + + action "Action 2" do + nil + end + end + class Boomer attr_accessor :closed @@ -92,6 +104,8 @@ class DebugExceptionsTest < ActionDispatch::IntegrationTest method_that_raises when "/nested_exceptions" raise_nested_exceptions + when %r{/actionable_error} + raise CustomActionableError else raise "puke!" end @@ -589,4 +603,21 @@ class DebugExceptionsTest < ActionDispatch::IntegrationTest end end end + + test "shows a buttons for every action in an actionable error" do + @app = DevelopmentApp + Rails.stub :root, Pathname.new(".") do + cleaner = ActiveSupport::BacktraceCleaner.new.tap do |bc| + bc.add_silencer { |line| line !~ %r{test/dispatch/debug_exceptions_test.rb} } + end + + get "/actionable_error", headers: { "action_dispatch.backtrace_cleaner" => cleaner } + + # Assert correct error + assert_response 500 + + assert_select 'input[value="Action 1"]' + assert_select 'input[value="Action 2"]' + end + end end |