From 99369ac48e4378ee5ae561e3c34aeba0e88540dc Mon Sep 17 00:00:00 2001
From: Henk <henk.van.der.veen@gmail.com>
Date: Tue, 30 Mar 2021 23:58:00 +0200
Subject: [PATCH] support appsignal 3

---
 lib/roqua/support/errors.rb       | 5 ++++-
 roqua-support.gemspec             | 2 +-
 spec/roqua/support/errors_spec.rb | 9 +++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/roqua/support/errors.rb b/lib/roqua/support/errors.rb
index 341dcc2..151042e 100644
--- a/lib/roqua/support/errors.rb
+++ b/lib/roqua/support/errors.rb
@@ -82,7 +82,10 @@ module Roqua
             current_transaction.set_tags(labels)
             current_transaction.add_exception(exception)
           else
-            Appsignal.send_error exception, labels, namespace
+            Appsignal.send_error exception do |transaction|
+              transaction.set_tags labels
+              transaction.set_namespace namespace
+            end
           end
         end
       end
diff --git a/roqua-support.gemspec b/roqua-support.gemspec
index 32a7285..826438d 100644
--- a/roqua-support.gemspec
+++ b/roqua-support.gemspec
@@ -23,7 +23,7 @@ Gem::Specification.new do |gem|
   gem.add_dependency 'active_interaction', '>= 3.0', '< 5.0'
   gem.add_dependency 'naught', '~> 1.0'
   gem.add_dependency 'with_advisory_lock', '~> 3.2'
-  gem.add_dependency 'appsignal', '>= 2.9', '< 2.11'
+  gem.add_dependency 'appsignal', '>= 2.9', '< 3.1'
 
   gem.add_development_dependency 'bundler', '~> 2.0'
   gem.add_development_dependency 'delayed_job_active_record'
diff --git a/spec/roqua/support/errors_spec.rb b/spec/roqua/support/errors_spec.rb
index acd2da7..625ae54 100644
--- a/spec/roqua/support/errors_spec.rb
+++ b/spec/roqua/support/errors_spec.rb
@@ -106,16 +106,21 @@ describe 'Error reporting' do
     end
 
     it 'defaults to a background job' do
-      expect(Appsignal).to receive(:send_error).with(exception, {}, Appsignal::Transaction::BACKGROUND_JOB)
+      transaction = Appsignal::Transaction.new(SecureRandom.uuid, Appsignal::Transaction::FRONTEND, nil)
+      expect(Appsignal).to receive(:send_error).with(exception).and_yield(transaction)
       Roqua::Support::Errors.report exception
+      expect(transaction.namespace).to eq Appsignal::Transaction::BACKGROUND_JOB
     end
 
     it 'it will send an error under the provided category' do
+      transaction = Appsignal::Transaction.new(SecureRandom.uuid, Appsignal::Transaction::FRONTEND, nil)
       expect(Appsignal)
         .to receive(:send_error)
-        .with(exception, {a: 'b'}, Appsignal::Transaction::HTTP_REQUEST)
+        .with(exception).and_yield(transaction)
 
       Roqua::Support::Errors.report exception, a: 'b', namespace: :web
+      expect(transaction.namespace).to eq Appsignal::Transaction::HTTP_REQUEST
+      expect(transaction.tags).to eq a: 'b'
     end
 
     describe 'when a current transaction is present' do
-- 
GitLab