Commit a3f235bf authored by Jan Provaznik's avatar Jan Provaznik

Merge branch 'gitlab-316-add-shared-examples-for-kubeclient-error-tests' into 'master'

Extract logic used for testing response to Kubeclient error

See merge request gitlab-org/gitlab!54318
parents 11083c89 3eff73d5
......@@ -48,24 +48,7 @@ RSpec.describe NetworkPolicies::DeleteResourceService do
end
end
context 'with Kubeclient::HttpError' do
let(:request_url) { 'https://kubernetes.local' }
let(:response) { RestClient::Response.create('', {}, RestClient::Request.new(url: request_url, method: :get)) }
before do
allow(kubeclient).to receive(:delete_network_policy).and_raise(Kubeclient::HttpError.new(500, 'system failure', response))
end
it 'returns error response' do
expect(subject).to be_error
expect(subject.http_status).to eq(:bad_request)
expect(subject.message).not_to be_nil
end
it 'returns error message without request url' do
expect(subject.message).not_to include(request_url)
end
end
include_examples 'responds to Kubeclient::HttpError', :delete_network_policy
context 'with CiliumNetworkPolicy' do
let(:manifest) do
......
......@@ -93,24 +93,7 @@ RSpec.describe NetworkPolicies::DeployResourceService do
end
end
context 'with Kubeclient::HttpError' do
let(:request_url) { 'https://kubernetes.local' }
let(:response) { RestClient::Response.create('', {}, RestClient::Request.new(url: request_url, method: :get)) }
before do
allow(kubeclient).to receive(:create_network_policy).and_raise(Kubeclient::HttpError.new(500, 'system failure', response))
end
it 'returns error response' do
expect(subject).to be_error
expect(subject.http_status).to eq(:bad_request)
expect(subject.message).not_to be_nil
end
it 'returns error message without request url' do
expect(subject.message).not_to include(request_url)
end
end
include_examples 'responds to Kubeclient::HttpError', :create_network_policy
context 'with cilium network policy' do
let(:manifest) do
......
......@@ -61,23 +61,6 @@ RSpec.describe NetworkPolicies::FindResourceService do
end
end
context 'with Kubeclient::HttpError' do
let(:request_url) { 'https://kubernetes.local' }
let(:response) { RestClient::Response.create('', {}, RestClient::Request.new(url: request_url, method: :get)) }
before do
allow(kubeclient).to receive(:get_network_policy).and_raise(Kubeclient::HttpError.new(500, 'system failure', response))
end
it 'returns error response' do
expect(subject).to be_error
expect(subject.http_status).to eq(:bad_request)
expect(subject.message).not_to be_nil
end
it 'returns error message without request url' do
expect(subject.message).not_to include(request_url)
end
end
include_examples 'responds to Kubeclient::HttpError', :get_network_policy
end
end
# frozen_string_literal: true
RSpec.shared_examples 'responds to Kubeclient::HttpError' do |kubeclient_method|
context 'with Kubeclient::HttpError' do
let(:request_url) { 'https://kubernetes.local' }
let(:response) { RestClient::Response.create('', {}, RestClient::Request.new(url: request_url, method: :get)) }
before do
allow(kubeclient).to receive(kubeclient_method).and_raise(Kubeclient::HttpError.new(500, 'system failure', response))
end
it 'returns error response', :aggregate_failures do
expect(subject).to be_error
expect(subject.http_status).to eq(:bad_request)
expect(subject.message).not_to be_nil
end
it 'returns error message without request url' do
expect(subject.message).not_to include(request_url)
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment