From 45c83134b012c7eed8e47ebdf70d17469b97e4a5 Mon Sep 17 00:00:00 2001 From: Pete Goddard Date: Tue, 9 Jan 2024 10:38:54 +0000 Subject: [PATCH] Add test helpers for subscriber list metrics --- lib/gds_api/test_helpers/email_alert_api.rb | 10 ++++++++++ test/test_helpers/email_alert_api_test.rb | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/lib/gds_api/test_helpers/email_alert_api.rb b/lib/gds_api/test_helpers/email_alert_api.rb index e31b7232..79549d59 100644 --- a/lib/gds_api/test_helpers/email_alert_api.rb +++ b/lib/gds_api/test_helpers/email_alert_api.rb @@ -164,6 +164,16 @@ def stub_any_email_alert_api_call stub_request(:any, %r{\A#{EMAIL_ALERT_API_ENDPOINT}}) end + def stub_get_subscriber_list_metrics(path:, response:) + stub_request(:get, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/metrics#{path}") + .to_return(status: 200, body: response) + end + + def stub_get_subscriber_list_metrics_not_found(path:) + stub_request(:get, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/metrics#{path}") + .to_return(status: 404) + end + def assert_email_alert_api_content_change_created(attributes = nil) if attributes matcher = lambda do |request| diff --git a/test/test_helpers/email_alert_api_test.rb b/test/test_helpers/email_alert_api_test.rb index 140e53a9..915d5521 100644 --- a/test/test_helpers/email_alert_api_test.rb +++ b/test/test_helpers/email_alert_api_test.rb @@ -49,4 +49,24 @@ assert_equal(2, result["subscriptions"].count) end end + + describe "#stub_get_subscriber_list_metrics_not_found" do + it "raises 404" do + stub_get_subscriber_list_metrics_not_found(path: "/some/path") + assert_raises(GdsApi::HTTPNotFound) do + email_alert_api.get_subscriber_list_metrics(path: "/some/path") + end + end + end + + describe "#stub_get_subscriber_list_metrics" do + it "returns the stubbed data" do + json = { subscriber_list_count: 3, all_notify_count: 10 }.to_json + stub_get_subscriber_list_metrics(path: "/some/path", response: json) + response = email_alert_api.get_subscriber_list_metrics(path: "/some/path") + expected = { "subscriber_list_count" => 3, "all_notify_count" => 10 } + assert_equal 200, response.code + assert_equal expected, response.to_h + end + end end