Alert ensures to pass metadata correctly

This commit is contained in:
Maikel Linke
2025-02-11 15:27:58 +11:00
parent b23eac1004
commit fa7edbb073
2 changed files with 10 additions and 0 deletions

View File

@@ -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)

View File

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