Skip to content

Commit

Permalink
Add Pacts tests for Support API
Browse files Browse the repository at this point in the history
We expect a 201 success if the parameters provided for the
`raise_support_ticket` are valid, and a 422 error if not.

When these tests are run they output a JSON pactfile, which is
published to our [pact broker](https://github.com/alphagov/govuk-pact-broker).
  • Loading branch information
deborahchua committed Jun 5, 2024
1 parent 9aabf9d commit ece4990
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions test/pacts/support_api_pact_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
require "test_helper"
require "gds_api/support_api"

describe "GdsApi::SupportApi pact tests" do
include PactTest

describe "#raise_support_ticket" do
let(:api_client) { GdsApi::SupportApi.new(support_api_host) }

it "responds with a 201 Success if the parameters provided are valid" do
support_api
.given("the parameters are valid")
.upon_receiving("a raise ticket request")
.with(
method: :post,
path: "/support-tickets",
headers: GdsApi::JsonClient.default_request_with_json_body_headers,
body: {
subject: "Feedback for app",
tags: %w[app_name],
user_agent: "Safari",
description: "There is something wrong with this page.",
},
)
.will_respond_with(
status: 201,
body: {
status: "success",
},
headers: {
"Content-Type" => "application/json; charset=utf-8",
},
)

api_client.raise_support_ticket(
subject: "Feedback for app",
tags: %w[app_name],
user_agent: "Safari",
description: "There is something wrong with this page.",
)
end

it "responds with 422 Error when required parameters are not provided" do
support_api
.given("the required parameters are not provided")
.upon_receiving("a raise ticket request")
.with(
method: :post,
path: "/support-tickets",
headers: GdsApi::JsonClient.default_request_with_json_body_headers,
body: {
subject: "Ticket without body",
},
)
.will_respond_with(
status: 422,
body: {
status: "error",
},
)

begin
api_client.raise_support_ticket(subject: "Ticket without body")
rescue GdsApi::HTTPUnprocessableEntity
# expected outcome
end
end
end
end

0 comments on commit ece4990

Please sign in to comment.