Skip to content

Commit 78b5add

Browse files
authored
Merge pull request #6700 from NHSDigital/ensure-nicer-error-for-missing-careplus-url
Ensure more descriptive error appears when URL for mock careplus service isn't set
2 parents c2729c1 + 3b92317 commit 78b5add

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

app/lib/careplus/client.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ def initialize(username:, password:, namespace:, payload:)
1616
end
1717

1818
def send_csv
19-
uri =
20-
URI.parse("#{Settings.careplus.base_url}/#{namespace}/soap.SchImms.cls")
19+
base_url = Settings.careplus.base_url.presence or
20+
raise "Settings.careplus.base_url is empty or has not been configured " \
21+
"(if this is a deployed service, the MOCK_CAREPLUS_URL environment variable may not be set)"
22+
uri = URI.parse("#{base_url}/#{namespace}/soap.SchImms.cls")
2123
soap_body = build_soap_envelope
2224
post_soap_request(uri, soap_body)
2325
end

spec/lib/careplus/client_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@
7474
end
7575
end
7676

77+
context "when base_url is not configured" do
78+
before { allow(Settings.careplus).to receive(:base_url).and_return(nil) }
79+
80+
it "raises a RuntimeError" do
81+
expect { response }.to raise_error(RuntimeError)
82+
end
83+
end
84+
7785
context "when base_url uses HTTPS" do
7886
before do
7987
allow(Settings.careplus).to receive(:base_url).and_return(

0 commit comments

Comments
 (0)