Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-27 22:01:26 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-27 22:01:26 +0300
commit1ff28a8d8d370efef8bbac2da1edb85b758d4643 (patch)
tree906de1dd9c7637330f2eaea9c1a4217decd9a749 /spec/services
parenta876afc5fd85a4ccae6947941884f3913f472ab0 (diff)
Add latest changes from gitlab-org/security/gitlab@15-2-stable-ee
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/grafana/proxy_service_spec.rb42
1 files changed, 36 insertions, 6 deletions
diff --git a/spec/services/grafana/proxy_service_spec.rb b/spec/services/grafana/proxy_service_spec.rb
index 7ddc31d45d9..99120de3593 100644
--- a/spec/services/grafana/proxy_service_spec.rb
+++ b/spec/services/grafana/proxy_service_spec.rb
@@ -50,12 +50,8 @@ RSpec.describe Grafana::ProxyService do
describe '#execute' do
subject(:result) { service.execute }
- context 'when grafana integration is not configured' do
- before do
- allow(project).to receive(:grafana_integration).and_return(nil)
- end
-
- it 'returns error' do
+ shared_examples 'missing proxy support' do
+ it 'returns API not supported error' do
expect(result).to eq(
status: :error,
message: 'Proxy support for this API is not available currently'
@@ -63,6 +59,40 @@ RSpec.describe Grafana::ProxyService do
end
end
+ context 'with unsupported proxy path' do
+ where(:proxy_path) do
+ %w[
+ /api/vl/query_range
+ api/vl/query_range/
+ api/vl/labels
+ api/v2/query_range
+ ../../../org/users
+ ]
+ end
+
+ with_them do
+ include_examples 'missing proxy support'
+ end
+ end
+
+ context 'with unsupported datasource_id' do
+ where(:datasource_id) do
+ ['', '-1', '1str', 'str1', '../../1', '1/../..', "1\n1"]
+ end
+
+ with_them do
+ include_examples 'missing proxy support'
+ end
+ end
+
+ context 'when grafana integration is not configured' do
+ before do
+ allow(project).to receive(:grafana_integration).and_return(nil)
+ end
+
+ include_examples 'missing proxy support'
+ end
+
context 'with caching', :use_clean_rails_memory_store_caching do
context 'when value not present in cache' do
it 'returns nil' do