Add statsd counter for BCH registration writes

Phillip Davis created

Change summary

lib/statsd.rb             |  3 +++
test/test_registration.rb | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+)

Detailed changes

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"
 

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