From fa7edbb073924f8111e520ab7981c7c6c991a3e9 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 11 Feb 2025 15:27:58 +1100 Subject: [PATCH] Alert ensures to pass metadata correctly --- app/services/alert.rb | 2 ++ spec/services/alert_spec.rb | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/app/services/alert.rb b/app/services/alert.rb index d030554298..7327cf45b0 100644 --- a/app/services/alert.rb +++ b/app/services/alert.rb @@ -23,6 +23,8 @@ class Alert def self.raise(error, metadata = {}, &block) Bugsnag.notify(error) do |payload| metadata.each do |name, data| + # Bugsnag only reports metadata when given a Hash. + data = { data: } unless data.is_a?(Hash) payload.add_metadata(name, data) end block.call(payload) diff --git a/spec/services/alert_spec.rb b/spec/services/alert_spec.rb index 16a73721e5..946db70684 100644 --- a/spec/services/alert_spec.rb +++ b/spec/services/alert_spec.rb @@ -41,6 +41,14 @@ RSpec.describe Alert do ) end + it "adds context given as keyword argument" do + expect_any_instance_of(Bugsnag::Report).to receive(:add_metadata).with( + :data, { data: "ABC123" } + ) + + Alert.raise("hey", data: "ABC123") + end + it "is compatible with Bugsnag API" do expect_any_instance_of(Bugsnag::Report).to receive(:add_metadata).with( :order, { number: "ABC123" }