Commit 4220db7f authored by Piotr Skorupa's avatar Piotr Skorupa Committed by Alper Akgun

Refactor stubbing Prometheus calls into a spec helper

parent 66ce587c
......@@ -3,6 +3,8 @@
require 'generator_helper'
RSpec.describe Gitlab::UsageMetricDefinition::RedisHllGenerator do
include UsageDataHelpers
let(:category) { 'test_category' }
let(:event) { 'i_test_event' }
let(:args) { [category, event] }
......@@ -13,19 +15,7 @@ RSpec.describe Gitlab::UsageMetricDefinition::RedisHllGenerator do
before do
stub_const("#{Gitlab::UsageMetricDefinitionGenerator}::TOP_LEVEL_DIR", temp_dir)
# Stub Prometheus requests from Gitlab::Utils::UsageData
stub_request(:get, %r{^https?://::1:9090/-/ready})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_request(:get, %r{^https?://::1:9090/api/v1/query\?query=.*})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_prometheus_queries
end
it 'creates metric definition files' do
......
......@@ -12,19 +12,7 @@ RSpec.describe Gitlab::UsageMetricDefinitionGenerator do
before do
stub_const("#{described_class}::TOP_LEVEL_DIR", temp_dir)
# Stub Prometheus requests from Gitlab::Utils::UsageData
stub_request(:get, 'https://::1:9090/-/ready')
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_request(:get, %r{^https://::1:9090/api/v1/query\?query=.*})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_prometheus_queries
end
after do
......
......@@ -174,6 +174,22 @@ module UsageDataHelpers
allow(Gitlab::Prometheus::Internal).to receive(:prometheus_enabled?).and_return(false)
end
def stub_prometheus_queries
stub_request(:get, %r{^https?://::1:9090/-/ready})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_request(:get, %r{^https?://::1:9090/api/v1/query\?query=.*})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
end
def clear_memoized_values(values)
values.each { |v| described_class.clear_memoization(v) }
end
......
......@@ -3,22 +3,12 @@
require 'rake_helper'
RSpec.describe 'gitlab:usage data take tasks' do
include UsageDataHelpers
before do
Rake.application.rake_require 'tasks/gitlab/usage_data'
# stub prometheus external http calls https://gitlab.com/gitlab-org/gitlab/-/issues/245277
stub_request(:get, %r{^http[s]?://::1:9090/-/ready})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_request(:get, %r{^http[s]?://::1:9090/api/v1/query\?query=.*})
.to_return(
status: 200,
body: [{}].to_json,
headers: { 'Content-Type' => 'application/json' }
)
stub_prometheus_queries
end
describe 'dump_sql_in_yaml' do
......
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