diff options
Diffstat (limited to 'spec/services/pod_logs')
-rw-r--r-- | spec/services/pod_logs/base_service_spec.rb | 30 | ||||
-rw-r--r-- | spec/services/pod_logs/elasticsearch_service_spec.rb | 32 | ||||
-rw-r--r-- | spec/services/pod_logs/kubernetes_service_spec.rb | 20 |
3 files changed, 80 insertions, 2 deletions
diff --git a/spec/services/pod_logs/base_service_spec.rb b/spec/services/pod_logs/base_service_spec.rb index 3ec5dc68c60..bc4989b59d9 100644 --- a/spec/services/pod_logs/base_service_spec.rb +++ b/spec/services/pod_logs/base_service_spec.rb @@ -103,6 +103,36 @@ describe ::PodLogs::BaseService do expect(result[:container_name]).to eq(container_name) end end + + context 'when pod_name is not a string' do + let(:params) do + { + 'pod_name' => { something_that_is: :not_a_string } + } + end + + it 'returns error' do + result = subject.send(:check_arguments, {}) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq('Invalid pod_name') + end + end + + context 'when container_name is not a string' do + let(:params) do + { + 'container_name' => { something_that_is: :not_a_string } + } + end + + it 'returns error' do + result = subject.send(:check_arguments, {}) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq('Invalid container_name') + end + end end describe '#get_pod_names' do diff --git a/spec/services/pod_logs/elasticsearch_service_spec.rb b/spec/services/pod_logs/elasticsearch_service_spec.rb index e3efce1134b..8060d07461a 100644 --- a/spec/services/pod_logs/elasticsearch_service_spec.rb +++ b/spec/services/pod_logs/elasticsearch_service_spec.rb @@ -158,6 +158,21 @@ describe ::PodLogs::ElasticsearchService do end end + context 'with search provided and invalid' do + let(:params) do + { + 'search' => { term: "foo-bar" } + } + end + + it 'returns error' do + result = subject.send(:check_search, {}) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq("Invalid search parameter") + end + end + context 'with search not provided' do let(:params) do {} @@ -188,6 +203,21 @@ describe ::PodLogs::ElasticsearchService do end end + context 'with cursor provided and invalid' do + let(:params) do + { + 'cursor' => { term: "foo-bar" } + } + end + + it 'returns error' do + result = subject.send(:check_cursor, {}) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq("Invalid cursor parameter") + end + end + context 'with cursor not provided' do let(:params) do {} @@ -225,7 +255,7 @@ describe ::PodLogs::ElasticsearchService do .and_return(Elasticsearch::Transport::Client.new) allow_any_instance_of(::Gitlab::Elasticsearch::Logs::Lines) .to receive(:pod_logs) - .with(namespace, pod_name: pod_name, container_name: container_name, search: search, start_time: start_time, end_time: end_time, cursor: cursor) + .with(namespace, pod_name: pod_name, container_name: container_name, search: search, start_time: start_time, end_time: end_time, cursor: cursor, chart_above_v2: true) .and_return({ logs: expected_logs, cursor: expected_cursor }) result = subject.send(:pod_logs, result_arg) diff --git a/spec/services/pod_logs/kubernetes_service_spec.rb b/spec/services/pod_logs/kubernetes_service_spec.rb index da89c7ee117..a1f7645323b 100644 --- a/spec/services/pod_logs/kubernetes_service_spec.rb +++ b/spec/services/pod_logs/kubernetes_service_spec.rb @@ -218,7 +218,7 @@ describe ::PodLogs::KubernetesService do end it 'returns error if pod_name was specified but does not exist' do - result = subject.send(:check_pod_name, pod_name: 'another_pod', pods: [pod_name]) + result = subject.send(:check_pod_name, pod_name: 'another-pod', pods: [pod_name]) expect(result[:status]).to eq(:error) expect(result[:message]).to eq('Pod does not exist') @@ -230,6 +230,13 @@ describe ::PodLogs::KubernetesService do expect(result[:status]).to eq(:error) expect(result[:message]).to eq('pod_name cannot be larger than 253 chars') end + + it 'returns error if pod_name is in invalid format' do + result = subject.send(:check_pod_name, pod_name: "Invalid_pod_name", pods: [pod_name]) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq('pod_name can contain only lowercase letters, digits, \'-\', and \'.\' and must start and end with an alphanumeric character') + end end describe '#check_container_name' do @@ -287,5 +294,16 @@ describe ::PodLogs::KubernetesService do expect(result[:status]).to eq(:error) expect(result[:message]).to eq('container_name cannot be larger than 253 chars') end + + it 'returns error if container_name is in invalid format' do + result = subject.send(:check_container_name, + container_name: "Invalid_container_name", + pod_name: pod_name, + raw_pods: raw_pods + ) + + expect(result[:status]).to eq(:error) + expect(result[:message]).to eq('container_name can contain only lowercase letters, digits, \'-\', and \'.\' and must start and end with an alphanumeric character') + end end end |