From 6cfb05b5f06bf80ac5e9277ba86727bc1c615a0f Mon Sep 17 00:00:00 2001 From: Romain Pomier Date: Wed, 30 Jan 2019 14:18:44 +0100 Subject: [PATCH] Use backtrace cleaner for Slack notifications --- lib/exception_notifier/slack_notifier.rb | 3 ++- test/exception_notifier/slack_notifier_test.rb | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/exception_notifier/slack_notifier.rb b/lib/exception_notifier/slack_notifier.rb index f726d9a5..8e8568b7 100644 --- a/lib/exception_notifier/slack_notifier.rb +++ b/lib/exception_notifier/slack_notifier.rb @@ -50,7 +50,8 @@ def deep_reject(hash, block) def attchs(exception, clean_message, options) text, data = information_from_options(exception.class, options) - fields = fields(clean_message, exception.backtrace, data) + backtrace = clean_backtrace(exception) if exception.backtrace + fields = fields(clean_message, backtrace, data) [color: @color, text: text, fields: fields, mrkdwn_in: %w[text fields]] end diff --git a/test/exception_notifier/slack_notifier_test.rb b/test/exception_notifier/slack_notifier_test.rb index 69ca489c..72db960e 100644 --- a/test/exception_notifier/slack_notifier_test.rb +++ b/test/exception_notifier/slack_notifier_test.rb @@ -6,6 +6,7 @@ def setup @exception = fake_exception @exception.stubs(:backtrace).returns(fake_backtrace) @exception.stubs(:message).returns('exception message') + ExceptionNotifier::SlackNotifier.any_instance.stubs(:clean_backtrace).returns(fake_cleaned_backtrace) Socket.stubs(:gethostname).returns('example.com') end @@ -192,6 +193,10 @@ def fake_backtrace ] end + def fake_cleaned_backtrace + fake_backtrace[2..-1] + end + def fake_notification(exception = @exception, notification_options = {}, data_string = nil, expected_backtrace_lines = 10, additional_fields = []) exception_name = "*#{exception.class.to_s =~ /^[aeiou]/i ? 'An' : 'A'}* `#{exception.class}`" if notification_options[:env].nil? @@ -211,7 +216,7 @@ def fake_notification(exception = @exception, notification_options = {}, data_st fields = [{ title: 'Exception', value: exception.message }] fields.push(title: 'Hostname', value: 'example.com') if exception.backtrace - formatted_backtrace = "```#{exception.backtrace.first(expected_backtrace_lines).join("\n")}```" + formatted_backtrace = "```#{fake_cleaned_backtrace.first(expected_backtrace_lines).join("\n")}```" fields.push(title: 'Backtrace', value: formatted_backtrace) end fields.push(title: 'Data', value: "```#{data_string}```") if data_string