diff options
Diffstat (limited to 'spec/lib/gitlab/prometheus_client_spec.rb')
-rw-r--r-- | spec/lib/gitlab/prometheus_client_spec.rb | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/spec/lib/gitlab/prometheus_client_spec.rb b/spec/lib/gitlab/prometheus_client_spec.rb index 749192e5795..242a0ced031 100644 --- a/spec/lib/gitlab/prometheus_client_spec.rb +++ b/spec/lib/gitlab/prometheus_client_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Gitlab::PrometheusClient do +RSpec.describe Gitlab::PrometheusClient do include PrometheusHelpers subject { described_class.new('https://prometheus.example.com') } @@ -32,7 +32,7 @@ describe Gitlab::PrometheusClient do it 'raises error when status code not 200' do stub_request(:get, subject.health_url).to_return(status: 500, body: '') - expect { subject.healthy? }.to raise_error(Gitlab::PrometheusClient::Error) + expect { subject.healthy? }.to raise_error(Gitlab::PrometheusClient::UnexpectedResponseError) end end @@ -41,41 +41,41 @@ describe Gitlab::PrometheusClient do # - execute_query: A query call shared_examples 'failure response' do context 'when request returns 400 with an error message' do - it 'raises a Gitlab::PrometheusClient::Error error' do + it 'raises a Gitlab::PrometheusClient::QueryError error' do req_stub = stub_prometheus_request(query_url, status: 400, body: { error: 'bar!' }) expect { execute_query } - .to raise_error(Gitlab::PrometheusClient::Error, 'bar!') + .to raise_error(Gitlab::PrometheusClient::QueryError, 'bar!') expect(req_stub).to have_been_requested end end context 'when request returns 400 without an error message' do - it 'raises a Gitlab::PrometheusClient::Error error' do + it 'raises a Gitlab::PrometheusClient::QueryError error' do req_stub = stub_prometheus_request(query_url, status: 400) expect { execute_query } - .to raise_error(Gitlab::PrometheusClient::Error, 'Bad data received') + .to raise_error(Gitlab::PrometheusClient::QueryError, 'Bad data received') expect(req_stub).to have_been_requested end end context 'when request returns 500' do - it 'raises a Gitlab::PrometheusClient::Error error' do + it 'raises a Gitlab::PrometheusClient::UnexpectedResponseError error' do req_stub = stub_prometheus_request(query_url, status: 500, body: { message: 'FAIL!' }) expect { execute_query } - .to raise_error(Gitlab::PrometheusClient::Error, '500 - {"message":"FAIL!"}') + .to raise_error(Gitlab::PrometheusClient::UnexpectedResponseError, '500 - {"message":"FAIL!"}') expect(req_stub).to have_been_requested end end context 'when request returns non json data' do - it 'raises a Gitlab::PrometheusClient::Error error' do + it 'raises a Gitlab::PrometheusClient::UnexpectedResponseError error' do req_stub = stub_prometheus_request(query_url, status: 200, body: 'not json') expect { execute_query } - .to raise_error(Gitlab::PrometheusClient::Error, 'Parsing response failed') + .to raise_error(Gitlab::PrometheusClient::UnexpectedResponseError, 'Parsing response failed') expect(req_stub).to have_been_requested end end @@ -85,35 +85,35 @@ describe Gitlab::PrometheusClient do let(:prometheus_url) {"https://prometheus.invalid.example.com/api/v1/query?query=1"} shared_examples 'exceptions are raised' do - it 'raises a Gitlab::PrometheusClient::Error error when a SocketError is rescued' do + it 'raises a Gitlab::PrometheusClient::ConnectionError error when a SocketError is rescued' do req_stub = stub_prometheus_request_with_exception(prometheus_url, SocketError) expect { subject } - .to raise_error(Gitlab::PrometheusClient::Error, "Can't connect to #{prometheus_url}") + .to raise_error(Gitlab::PrometheusClient::ConnectionError, "Can't connect to #{prometheus_url}") expect(req_stub).to have_been_requested end - it 'raises a Gitlab::PrometheusClient::Error error when a SSLError is rescued' do + it 'raises a Gitlab::PrometheusClient::ConnectionError error when a SSLError is rescued' do req_stub = stub_prometheus_request_with_exception(prometheus_url, OpenSSL::SSL::SSLError) expect { subject } - .to raise_error(Gitlab::PrometheusClient::Error, "#{prometheus_url} contains invalid SSL data") + .to raise_error(Gitlab::PrometheusClient::ConnectionError, "#{prometheus_url} contains invalid SSL data") expect(req_stub).to have_been_requested end - it 'raises a Gitlab::PrometheusClient::Error error when a Gitlab::HTTP::ResponseError is rescued' do + it 'raises a Gitlab::PrometheusClient::ConnectionError error when a Gitlab::HTTP::ResponseError is rescued' do req_stub = stub_prometheus_request_with_exception(prometheus_url, Gitlab::HTTP::ResponseError) expect { subject } - .to raise_error(Gitlab::PrometheusClient::Error, "Network connection error") + .to raise_error(Gitlab::PrometheusClient::ConnectionError, "Network connection error") expect(req_stub).to have_been_requested end - it 'raises a Gitlab::PrometheusClient::Error error when a Gitlab::HTTP::ResponseError with a code is rescued' do + it 'raises a Gitlab::PrometheusClient::ConnectionError error when a Gitlab::HTTP::ResponseError with a code is rescued' do req_stub = stub_prometheus_request_with_exception(prometheus_url, Gitlab::HTTP::ResponseError.new(code: 400)) expect { subject } - .to raise_error(Gitlab::PrometheusClient::Error, "Network connection error") + .to raise_error(Gitlab::PrometheusClient::ConnectionError, "Network connection error") expect(req_stub).to have_been_requested end end @@ -400,9 +400,9 @@ describe Gitlab::PrometheusClient do context "without response code" do let(:response_error) { Gitlab::HTTP::ResponseError } - it 'raises PrometheusClient::Error' do + it 'raises PrometheusClient::ConnectionError' do expect { subject.proxy('query', { query: prometheus_query }) }.to( - raise_error(Gitlab::PrometheusClient::Error, 'Network connection error') + raise_error(Gitlab::PrometheusClient::ConnectionError, 'Network connection error') ) end end |