aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorMaxim Perepelitsa <n0xff@outlook.com>2018-11-09 01:03:04 +0700
committerMaxim Perepelitsa <n0xff@outlook.com>2018-11-13 03:30:41 +0700
commit59895db44b73b9a333387eee2078fda8feec9ce5 (patch)
treeac7602eb1d043c489fbeadd06b1b8dc30f609153 /actionpack
parent4fe27cdc15b88fed5ae725a886b7e96202f649a8 (diff)
downloadrails-59895db44b73b9a333387eee2078fda8feec9ce5.tar.gz
rails-59895db44b73b9a333387eee2078fda8feec9ce5.tar.bz2
rails-59895db44b73b9a333387eee2078fda8feec9ce5.zip
Reset sessions on failed system test screenshot
Reset Capybara sessions if `take_failed_screenshot` raise exception in system test `after_teardown`.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md7
-rw-r--r--actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb7
2 files changed, 12 insertions, 2 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index 81201795d4..97d7049cba 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,10 @@
+* Reset Capybara sessions if failed system test screenshot raising an exception.
+
+ Reset Capybara sessions if `take_failed_screenshot` raise exception
+ in system test `after_teardown`.
+
+ *Maxim Perepelitsa*
+
* Use request object for context if there's no controller
There is no controller instance when using a redirect route or a
diff --git a/actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb b/actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb
index e47d5020f4..600e9c733b 100644
--- a/actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb
+++ b/actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb
@@ -17,8 +17,11 @@ module ActionDispatch
end
def after_teardown
- take_failed_screenshot
- Capybara.reset_sessions!
+ begin
+ take_failed_screenshot
+ ensure
+ Capybara.reset_sessions!
+ end
ensure
super
end