diff options
Diffstat (limited to 'spec/lib/gitlab/kubernetes/kube_client_spec.rb')
-rw-r--r-- | spec/lib/gitlab/kubernetes/kube_client_spec.rb | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/spec/lib/gitlab/kubernetes/kube_client_spec.rb b/spec/lib/gitlab/kubernetes/kube_client_spec.rb index 90c11f29855..7b6d143dda9 100644 --- a/spec/lib/gitlab/kubernetes/kube_client_spec.rb +++ b/spec/lib/gitlab/kubernetes/kube_client_spec.rb @@ -9,7 +9,7 @@ RSpec.describe Gitlab::Kubernetes::KubeClient do let(:api_url) { 'https://kubernetes.example.com/prefix' } let(:kubeclient_options) { { auth_options: { bearer_token: 'xyz' } } } - let(:client) { described_class.new(api_url, kubeclient_options) } + let(:client) { described_class.new(api_url, **kubeclient_options) } before do stub_kubeclient_discover(api_url) @@ -133,7 +133,7 @@ RSpec.describe Gitlab::Kubernetes::KubeClient do end it 'falls back to default options, but allows overriding' do - client = Gitlab::Kubernetes::KubeClient.new(api_url, {}) + client = described_class.new(api_url) defaults = Gitlab::Kubernetes::KubeClient::DEFAULT_KUBECLIENT_OPTIONS expect(client.kubeclient_options[:timeouts]).to eq(defaults[:timeouts]) @@ -347,6 +347,34 @@ RSpec.describe Gitlab::Kubernetes::KubeClient do end end + describe '#get_ingresses' do + let(:extensions_client) { client.extensions_client } + let(:networking_client) { client.networking_client } + + include_examples 'redirection not allowed', 'get_ingresses' + include_examples 'dns rebinding not allowed', 'get_ingresses' + + it 'delegates to the extensions client' do + expect(extensions_client).to receive(:get_ingresses) + + client.get_ingresses + end + + context 'extensions does not have deployments for Kubernetes 1.22+ clusters' do + before do + WebMock + .stub_request(:get, api_url + '/apis/extensions/v1beta1') + .to_return(kube_response(kube_1_22_extensions_v1beta1_discovery_body)) + end + + it 'delegates to the apps client' do + expect(networking_client).to receive(:get_ingresses) + + client.get_ingresses + end + end + end + describe 'istio API group' do let(:istio_client) { client.istio_client } |