From cbec0cbc47ac1497176d9d19ea7e8d2e1f2a453b Mon Sep 17 00:00:00 2001 From: Michael Bell Date: Fri, 16 Jun 2023 17:58:52 +1000 Subject: [PATCH] added test for recording exception --- .../middlewares/server/tracer_middleware_test.rb | 14 ++++++++++++++ instrumentation/shoryuken/test/test_helper.rb | 14 +++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/instrumentation/shoryuken/test/opentelemetry/instrumentation/shoryuken/middlewares/server/tracer_middleware_test.rb b/instrumentation/shoryuken/test/opentelemetry/instrumentation/shoryuken/middlewares/server/tracer_middleware_test.rb index 3bfddcc0f..4b1e4e7a8 100644 --- a/instrumentation/shoryuken/test/opentelemetry/instrumentation/shoryuken/middlewares/server/tracer_middleware_test.rb +++ b/instrumentation/shoryuken/test/opentelemetry/instrumentation/shoryuken/middlewares/server/tracer_middleware_test.rb @@ -62,5 +62,19 @@ _(job_span.attributes['messaging.destination_kind']).must_equal 'queue' _(job_span.attributes['messaging.operation']).must_equal 'process' end + + describe 'when worker raises exception' do + let(:worker_class) { ExceptionTestingJob } + + it 'records exceptions' do + + _(-> { Shoryuken::Processor.process(queue_name, sqs_msg) }).must_raise(RuntimeError) + + ev = job_span.events + _(ev[0].attributes['exception.type']).must_equal('RuntimeError') + _(ev[0].attributes['exception.message']).must_equal('a little hell') + _(ev[0].attributes['exception.stacktrace']).wont_be_nil + end + end end end diff --git a/instrumentation/shoryuken/test/test_helper.rb b/instrumentation/shoryuken/test/test_helper.rb index b3fe5c141..b1a9923fe 100644 --- a/instrumentation/shoryuken/test/test_helper.rb +++ b/instrumentation/shoryuken/test/test_helper.rb @@ -56,14 +56,14 @@ def perform(sqs_msg, payload); end # end # end -# class ExceptionTestingJob -# include Shoryuken::Worker -# shoryuken_options body_parser: JSON, queue: 'default', auto_delete: true +class ExceptionTestingJob + include Shoryuken::Worker + shoryuken_options body_parser: JSON, queue: 'default', auto_delete: true -# def perform(*args) -# raise 'a little hell' -# end -# end + def perform(*args) + raise 'a little hell' + end +end module Shoryuken module CLI