test/safely_test.rb in safely_block-0.1.1 vs test/safely_test.rb in safely_block-0.2.0
- old
+ new
@@ -1,10 +1,11 @@
require_relative "test_helper"
class TestSafely < Minitest::Test
def setup
Safely.env = "production"
+ Safely.tag = true
Safely.report_exception_method = Safely::DEFAULT_EXCEPTION_METHOD
end
def test_development_environment
Safely.env = "development"
@@ -26,45 +27,67 @@
def test_production_environment
exception = Safely::TestError.new
mock = MiniTest::Mock.new
mock.expect :report_exception, nil, [exception]
- Safely.report_exception_method = proc { |e| mock.report_exception(e) }
+ Safely.report_exception_method = -> (e) { mock.report_exception(e) }
safely do
raise exception
end
assert mock.verify
end
def test_yolo
exception = Safely::TestError.new
mock = MiniTest::Mock.new
mock.expect :report_exception, nil, [exception]
- Safely.report_exception_method = proc { |e| mock.report_exception(e) }
+ Safely.report_exception_method = -> (e) { mock.report_exception(e) }
yolo do
raise exception
end
assert mock.verify
end
+ def test_tagged
+ ex = nil
+ Safely.report_exception_method = -> (e) { ex = e }
+ safely { raise Safely::TestError, "Boom" }
+ assert_equal "[safely] Boom", ex.message
+ end
+
+ def test_not_tagged
+ Safely.tag = false
+ ex = nil
+ Safely.report_exception_method = -> (e) { ex = e }
+ safely { raise Safely::TestError, "Boom" }
+ assert_equal "Boom", ex.message
+ end
+
+ def test_local_tag
+ ex = nil
+ Safely.report_exception_method = -> (e) { ex = e }
+ safely(tag: "hi") { raise Safely::TestError, "Boom" }
+ assert_equal "[hi] Boom", ex.message
+ end
+
def test_return_value
assert_equal 1, safely { 1 }
- assert_equal nil, safely { raise Safely::TestError, "Boom" }
+ assert_nil safely { raise Safely::TestError, "Boom" }
end
def test_default
assert_equal 1, safely(default: 2) { 1 }
assert_equal 2, safely(default: 2) { raise Safely::TestError, "Boom" }
end
def test_only
- assert_equal nil, safely(only: Safely::TestError) { raise Safely::TestError }
+ assert_nil safely(only: Safely::TestError) { raise Safely::TestError }
assert_raises(RuntimeError, "Boom") { safely(only: Safely::TestError) { raise "Boom" } }
end
def test_only_array
- assert_equal nil, safely(only: [Safely::TestError]) { raise Safely::TestError }
+ assert_nil safely(only: [Safely::TestError]) { raise Safely::TestError }
assert_raises(RuntimeError, "Boom") { safely(only: [Safely::TestError]) { raise "Boom" } }
end
def test_except
assert_raises(Safely::TestError, "Boom") { safely(except: StandardError) { raise Safely::TestError, "Boom" } }
@@ -74,34 +97,40 @@
safely(silence: StandardError) { raise Safely::TestError, "Boom" }
assert true
end
def test_failsafe
- Safely.report_exception_method = proc { raise "oops" }
- out, err = capture_io do
+ Safely.report_exception_method = -> (_) { raise "oops" }
+ _, err = capture_io do
safely { raise "boom" }
end
assert_equal "FAIL-SAFE RuntimeError: oops\n", err
end
def test_throttle
count = 0
- Safely.report_exception_method = proc { |e| count += 1 }
+ Safely.report_exception_method = -> (_) { count += 1 }
5.times do |n|
safely throttle: {limit: 2, period: 3600} do
raise Safely::TestError
end
end
assert_equal 2, count
end
def test_throttle_key
count = 0
- Safely.report_exception_method = proc { |e| count += 1 }
+ Safely.report_exception_method = -> (_) { count += 1 }
5.times do |n|
safely throttle: {limit: 2, period: 3600, key: "boom#{n % 2}"} do
raise Safely::TestError
end
end
assert_equal 4, count
+ end
+
+ def test_bad_argument
+ assert_raises(ArgumentError) do
+ safely(unknown: true) { }
+ end
end
end