From efa3cf5a0a62ab63cfda593f923dd432a450d26a Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Sat, 9 May 2026 00:44:42 -0400 Subject: [PATCH] Add statsd counter for BCH registration writes --- lib/statsd.rb | 3 +++ test/test_registration.rb | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/lib/statsd.rb b/lib/statsd.rb index c0192e23ccd3344339b10a0934dee1e7eee6732b..fcacc19bd7f61857ecd8d1475d6c8fe3c4705e6a 100644 --- a/lib/statsd.rb +++ b/lib/statsd.rb @@ -17,6 +17,9 @@ Registration::Activation.statsd_count :write, "registration.activation" Registration::Payment::Bitcoin.extend StatsD::Instrument Registration::Payment::Bitcoin.statsd_count :write, "registration.payment.bitcoin" +Registration::Payment::BCH.extend StatsD::Instrument +Registration::Payment::BCH.statsd_count :write, "registration.payment.bch" + Registration::Payment::CreditCard.extend StatsD::Instrument Registration::Payment::CreditCard.statsd_count :write, "registration.payment.credit_card" diff --git a/test/test_registration.rb b/test/test_registration.rb index f84c721c75e1b1a82a4b06a276df95bb62cb5acc..c53cc8f608554d1907c27e10b5393434b583137a 100644 --- a/test/test_registration.rb +++ b/test/test_registration.rb @@ -6,6 +6,7 @@ require "registration" require "bwmsgsv2_repo" require "transaction" require "sim_order" +require "statsd" BandwidthTnReservationRepo::REDIS = FakeRedis.new @@ -912,6 +913,44 @@ class RegistrationTest < Minitest::Test assert_mock blather end em :test_write + + def test_write_emits_statsd_count + CustomerFinancials::REDIS.expect( + :smembers, + EMPromise.resolve([]), + ["jmp_customer_bch_addresses-test"] + ) + blather = Minitest::Mock.new + Command::COMMAND_MANAGER.expect( + :write, + EMPromise.reject(SessionManager::Timeout.new), + [Matching.new do |reply| + assert_equal :canceled, reply.status + true + end] + ) + Registration::Payment::BCH::BCH_SELL_PRICES.expect( + :usd, + EMPromise.resolve(BigDecimal(1)) + ) + statsd_capture = [] + StatsD.singleton_client.stub( + :increment, + ->(*args, **kwargs) { statsd_capture << [args, kwargs] } + ) do + @bch.stub(:save, EMPromise.resolve(nil)) do + execute_command(blather: blather) do + @bch.write + end + end + end + assert_includes( + statsd_capture.map { |args, _| args.first }, + "registration.payment.bch" + ) + assert_mock blather + end + em :test_write_emits_statsd_count end class CreditCardTest < Minitest::Test