Commit a3368a98 authored by Rémy Coutable's avatar Rémy Coutable

Improve the LiveDebugger exit handler and documentation

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 9bccea6e
......@@ -62,10 +62,10 @@ writing one](testing_levels.md#consider-not-writing-a-system-test)!
Sometimes you may need to debug Capybara tests by observing browser behavior.
You can stall Capybara and view the website on the browser by using the
You can pause Capybara and view the website on the browser by using the
`live_debug` method in your spec. The current page will be automatically opened
in your default browser.
You may need to sign-in first (the current user's credentials are displayed in
You may need to sign in first (the current user's credentials are displayed in
the terminal).
To resume the test run, you only need to press `c`.
......
......@@ -2,20 +2,24 @@ require 'io/console'
module LiveDebugger
def live_debug
`open #{current_url}`
puts "\nCurrent example is paused for live debugging"
puts "\nCurrent example is paused for live debugging."
puts "Opening #{current_url} in your default browser..."
puts "The current user credentials are: #{@current_user.username} / 12345678" if @current_user
puts "Press 'c' to continue the execution of the example"
puts "Press '^C' to continue the execution of the example"
`open #{current_url}`
catch :unpause_test do
trap('INT') { throw :unpause_test }
loop do
if $stdin.getch == 'c'
break
else
puts "Please press 'c' to continue the execution of the example! ;)"
sleep(1)
end
end
# If the command is 'DEFAULT', the Ruby's default handler will be invoked.
# http://docs.rubydocs.org/rails-4-2-8-ruby-2-3-4/Ruby%202.3.4/classes/Kernel.html#method-i-trap
trap('INT') { 'DEFAULT' }
puts "Back to the example!"
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment