Skip to content

Commit

Permalink
Add both with- and without-message variants for bulk unsubscribe test…
Browse files Browse the repository at this point in the history
… helpers
  • Loading branch information
barrucadu committed Jan 24, 2022
1 parent e68ac44 commit 0c14a77
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
@@ -1,5 +1,6 @@
# unreleased

* Add both with- and without-message variants for bulk unsubscribe test helpers (for Email Alert API)
* BREAKING: Add `sender_message_id` and `govuk_request_id` to bulk unsubscribe (bad request) test helper (for Email Alert API)
* Add `content_id` to subscriber lists URL helper (for Email Alert API)

Expand Down
12 changes: 11 additions & 1 deletion lib/gds_api/test_helpers/email_alert_api.rb
Expand Up @@ -440,6 +440,11 @@ def stub_email_alert_api_bulk_unsubscribe_not_found_with_message(slug:, govuk_re
).to_return(status: 404)
end

def stub_email_alert_api_bulk_unsubscribe_conflict(slug:)
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
.to_return(status: 409)
end

def stub_email_alert_api_bulk_unsubscribe_conflict_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
.with(
Expand All @@ -451,7 +456,12 @@ def stub_email_alert_api_bulk_unsubscribe_conflict_with_message(slug:, govuk_req
).to_return(status: 409)
end

def stub_email_alert_api_bulk_unsubscribe_bad_request(slug:, govuk_request_id:, body:, sender_message_id:)
def stub_email_alert_api_bulk_unsubscribe_bad_request(slug:)
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
.to_return(status: 422)
end

def stub_email_alert_api_bulk_unsubscribe_bad_request_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
.with(
body: {
Expand Down
32 changes: 28 additions & 4 deletions test/email_alert_api_test.rb
Expand Up @@ -861,7 +861,14 @@
end
end

it "returns 409 if a message has already been received" do
it "returns 409 on conflict" do
stub_email_alert_api_bulk_unsubscribe_conflict(slug: slug)
assert_raises GdsApi::HTTPConflict do
api_client.bulk_unsubscribe(slug: slug)
end
end

it "returns 409 on conflict if a message is provided" do
stub_email_alert_api_bulk_unsubscribe_conflict_with_message(
slug: slug,
govuk_request_id: "govuk_request_id",
Expand All @@ -878,10 +885,27 @@
end
end

it "returns 422 if a body is sent without a sender_message_id" do
stub_email_alert_api_bulk_unsubscribe_bad_request(slug: slug, body: body)
it "returns 422 on bad request" do
stub_email_alert_api_bulk_unsubscribe_bad_request(slug: slug)
assert_raises GdsApi::HTTPUnprocessableEntity do
api_client.bulk_unsubscribe(slug: slug, body: body)
api_client.bulk_unsubscribe(slug: slug)
end
end

it "returns 422 on bad request if a message is provided" do
stub_email_alert_api_bulk_unsubscribe_bad_request_with_message(
slug: slug,
govuk_request_id: "govuk_request_id",
body: body,
sender_message_id: sender_message_id,
)
assert_raises GdsApi::HTTPUnprocessableEntity do
api_client.bulk_unsubscribe(
slug: slug,
govuk_request_id: "govuk_request_id",
body: body,
sender_message_id: sender_message_id,
)
end
end
end
Expand Down

0 comments on commit 0c14a77

Please sign in to comment.