Skip to content
This repository was archived by the owner on Jul 19, 2025. It is now read-only.

Commit 664cd03

Browse files
committed
Return a hash containing any handled error
1 parent e9cf22d commit 664cd03

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/cc/service/invocation/with_error_handling.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ def call
1010
@invocation.call
1111
rescue => ex
1212
@logger.error(error_message(ex))
13+
14+
{
15+
error: {
16+
class: ex.class,
17+
message: ex.message
18+
}
19+
}
1320
end
1421

1522
private

test/invocation_test.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,11 @@ def test_error_handling
6262
service = FakeService.new
6363
service.raise_on_receive = true
6464

65-
CC::Service::Invocation.invoke(service) do |i|
65+
result = CC::Service::Invocation.invoke(service) do |i|
6666
i.with :error_handling, logger, "a_prefix"
6767
end
6868

69+
assert result.has_key?(:error)
6970
assert_equal 1, logger.logged_errors.length
7071
assert_match /^Exception invoking service: \[a_prefix\]/, logger.logged_errors.first
7172
end
@@ -75,11 +76,12 @@ def test_multiple_middleware
7576
service.raise_on_receive = true
7677
logger = FakeLogger.new
7778

78-
CC::Service::Invocation.invoke(service) do |i|
79+
result = CC::Service::Invocation.invoke(service) do |i|
7980
i.with :retries, 3
8081
i.with :error_handling, logger
8182
end
8283

84+
assert result.has_key?(:error)
8385
assert_equal 1 + 3, service.receive_count
8486
assert_equal 1, logger.logged_errors.length
8587
end

0 commit comments

Comments
 (0)