summaryrefslogtreecommitdiff
path: root/spec/services/pod_logs
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/pod_logs')
-rw-r--r--spec/services/pod_logs/base_service_spec.rb30
-rw-r--r--spec/services/pod_logs/elasticsearch_service_spec.rb32
-rw-r--r--spec/services/pod_logs/kubernetes_service_spec.rb20
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