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" }