From fa978af0e1920857ab41f9c976d7ffd26194b2a4 Mon Sep 17 00:00:00 2001 From: Thomas Walpole Date: Mon, 17 Oct 2022 18:08:10 -0700 Subject: [PATCH] Set the cause on the server error, unclear why it wasn't being auto-set --- lib/capybara/session.rb | 5 ++--- lib/capybara/spec/session/node_spec.rb | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/capybara/session.rb b/lib/capybara/session.rb index 9a987196..d5b426e8 100644 --- a/lib/capybara/session.rb +++ b/lib/capybara/session.rb @@ -162,9 +162,8 @@ module Capybara if config.raise_server_errors raise CapybaraError, 'Your application server raised an error - It has been raised in your test code because Capybara.raise_server_errors == true' end - rescue CapybaraError - # needed to get the cause set correctly in JRuby -- otherwise we could just do raise @server.error - raise @server.error, @server.error.message, @server.error.backtrace + rescue CapybaraError => capy_error + raise @server.error, cause: capy_error ensure @server.reset_error! end diff --git a/lib/capybara/spec/session/node_spec.rb b/lib/capybara/spec/session/node_spec.rb index 857f2b25..9891304c 100644 --- a/lib/capybara/spec/session/node_spec.rb +++ b/lib/capybara/spec/session/node_spec.rb @@ -1220,7 +1220,7 @@ Capybara::SpecHelper.spec 'node' do expect(descendant).to have_checked_field('shadow_checkbox') end - it 'should produce error messages when failing', :focus_ do + it 'should produce error messages when failing' do @session.visit('/with_shadow') shadow_root = @session.find(:css, '#shadow_host').shadow_root expect do