diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-05-21 09:47:43 +0300 |
---|---|---|
committer | Alessio Caiazza <acaiazza@gitlab.com> | 2018-05-22 14:32:41 +0300 |
commit | a0afe659c8cbdeede06e85a7f5d050a847c86f46 (patch) | |
tree | ce9f6fa71e792d2b5794b851dda852933e3c7e23 /spec | |
parent | 3ebaa2bdd3948cbe05cb8c4feaae7f39520703b3 (diff) |
Merge branch 'fix-kube_client-proxy_url-exception' into 'master'
Rescue Kubeclient::HttpError when generating prometheus_client
See merge request gitlab-org/gitlab-ce!18989
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/projects/environments/environments_spec.rb | 16 | ||||
-rw-r--r-- | spec/models/clusters/applications/prometheus_spec.rb | 10 |
2 files changed, 26 insertions, 0 deletions
diff --git a/spec/features/projects/environments/environments_spec.rb b/spec/features/projects/environments/environments_spec.rb index 5248a783db4..f9defa22d35 100644 --- a/spec/features/projects/environments/environments_spec.rb +++ b/spec/features/projects/environments/environments_spec.rb @@ -42,6 +42,22 @@ feature 'Environments page', :js do expect(page).to have_content('You don\'t have any environments right now') end end + + context 'when cluster is not reachable' do + let!(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) } + let!(:application_prometheus) { create(:clusters_applications_prometheus, :installed, cluster: cluster) } + + before do + allow_any_instance_of(Kubeclient::Client).to receive(:proxy_url).and_raise(Kubeclient::HttpError.new(401, 'Unauthorized', nil)) + end + + it 'should show one environment without error' do + visit_environments(project, scope: 'available') + + expect(page).to have_css('.environments-container') + expect(page.all('.environment-name').length).to eq(1) + end + end end describe 'with one stopped environment' do diff --git a/spec/models/clusters/applications/prometheus_spec.rb b/spec/models/clusters/applications/prometheus_spec.rb index aeca6ee903a..407e2fc598a 100644 --- a/spec/models/clusters/applications/prometheus_spec.rb +++ b/spec/models/clusters/applications/prometheus_spec.rb @@ -85,6 +85,16 @@ describe Clusters::Applications::Prometheus do it 'copies options and headers from kube client to proxy client' do expect(subject.prometheus_client.options).to eq(kube_client.rest_client.options.merge(headers: kube_client.headers)) end + + context 'when cluster is not reachable' do + before do + allow(kube_client).to receive(:proxy_url).and_raise(Kubeclient::HttpError.new(401, 'Unauthorized', nil)) + end + + it 'returns nil' do + expect(subject.prometheus_client).to be_nil + end + end end end |