aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/cases/rescue_test.rb9
-rw-r--r--test/jobs/rescue_job.rb13
2 files changed, 17 insertions, 5 deletions
diff --git a/test/cases/rescue_test.rb b/test/cases/rescue_test.rb
index a91ed01f45..aea8b036d4 100644
--- a/test/cases/rescue_test.rb
+++ b/test/cases/rescue_test.rb
@@ -11,6 +11,13 @@ class RescueTest < ActiveSupport::TestCase
test 'rescue perform exception with retry' do
job = RescueJob.new
job.execute("david")
- assert_equal [ "rescued from StandardError", "performed beautifully" ], $BUFFER
+ assert_equal [ "rescued from ArgumentError", "performed beautifully" ], $BUFFER
+ end
+
+ test 'let through unhandled perform exception' do
+ job = RescueJob.new
+ assert_raises(RescueJob::OtherError) do
+ job.execute("other")
+ end
end
end
diff --git a/test/jobs/rescue_job.rb b/test/jobs/rescue_job.rb
index 66b28d768e..acf2b81515 100644
--- a/test/jobs/rescue_job.rb
+++ b/test/jobs/rescue_job.rb
@@ -1,13 +1,18 @@
class RescueJob < ActiveJob::Base
- rescue_from(StandardError) do
- $BUFFER << "rescued from StandardError"
+ class OtherError < StandardError; end
+
+ rescue_from(ArgumentError) do
+ $BUFFER << "rescued from ArgumentError"
arguments[0] = "DIFFERENT!"
retry_now
end
def perform(person = "david")
- if person == "david"
- raise "Hair too good"
+ case person
+ when "david"
+ raise ArgumentError, "Hair too good"
+ when "other"
+ raise OtherError
else
$BUFFER << "performed beautifully"
end