From 8a0977aa49958a56fb7955a3b9edf20611992856 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Sat, 9 May 2026 00:44:43 -0400 Subject: [PATCH] add statsd counter for data-only registration --- lib/statsd.rb | 3 +++ test/test_registration.rb | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lib/statsd.rb b/lib/statsd.rb index fcacc19bd7f61857ecd8d1475d6c8fe3c4705e6a..77c8b07e1e14a924895960a556e0e19f38e267e2 100644 --- a/lib/statsd.rb +++ b/lib/statsd.rb @@ -14,6 +14,9 @@ Registration::Registered.statsd_count :write, "registration.registered" Registration::Activation.extend StatsD::Instrument Registration::Activation.statsd_count :write, "registration.activation" +Registration::DataOnly.extend StatsD::Instrument +Registration::DataOnly.statsd_count :write, "registration.data_only" + Registration::Payment::Bitcoin.extend StatsD::Instrument Registration::Payment::Bitcoin.statsd_count :write, "registration.payment.bitcoin" diff --git a/test/test_registration.rb b/test/test_registration.rb index c53cc8f608554d1907c27e10b5393434b583137a..108f57ae8dd950747065b0c7407eaf13707b3a70 100644 --- a/test/test_registration.rb +++ b/test/test_registration.rb @@ -2582,6 +2582,38 @@ class RegistrationTest < Minitest::Test assert_mock Command::COMMAND_MANAGER end em :test_write_calls_sim_kind_for_and_process + + def test_write_emits_statsd_count + statsd_capture = [] + result = execute_command do + Command::COMMAND_MANAGER.expect( + :write, + EMPromise.reject(:test_result), + [Matching.new do |iq| + assert_equal iq.form.title, "Order SIM" + assert( + iq.form.instructions.start_with?("Our SIMs provide a plan") + ) + end] + ) + StatsD.singleton_client.stub( + :increment, + ->(*args, **kwargs) { statsd_capture << [args, kwargs] } + ) do + Registration::DataOnly.new( + @customer, + @sim_kind + ).write.catch { |e| e }.sync + end + end + assert_equal result, :test_result + assert_includes( + statsd_capture.map { |args, _| args.first }, + "registration.data_only" + ) + assert_mock Command::COMMAND_MANAGER + end + em :test_write_emits_statsd_count end class PayForSimTest < Minitest::Test