diff options
Diffstat (limited to 'spec/lib/gitlab/metrics/rails_slis_spec.rb')
-rw-r--r-- | spec/lib/gitlab/metrics/rails_slis_spec.rb | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/spec/lib/gitlab/metrics/rails_slis_spec.rb b/spec/lib/gitlab/metrics/rails_slis_spec.rb index b30eb57101f..9da102fb8b8 100644 --- a/spec/lib/gitlab/metrics/rails_slis_spec.rb +++ b/spec/lib/gitlab/metrics/rails_slis_spec.rb @@ -14,8 +14,8 @@ RSpec.describe Gitlab::Metrics::RailsSlis do end describe '.initialize_request_slis!' do - it "initializes the SLI for all possible endpoints if they weren't", :aggregate_failures do - possible_labels = [ + let(:possible_labels) do + [ { endpoint_id: "GET /api/:version/version", feature_category: :not_owned, @@ -27,17 +27,32 @@ RSpec.describe Gitlab::Metrics::RailsSlis do request_urgency: :default } ] + end - possible_graphql_labels = ['graphql:foo', 'graphql:bar', 'graphql:unknown'].map do |endpoint_id| + let(:possible_graphql_labels) do + ['graphql:foo', 'graphql:bar', 'graphql:unknown'].map do |endpoint_id| { endpoint_id: endpoint_id, feature_category: nil, query_urgency: ::Gitlab::EndpointAttributes::DEFAULT_URGENCY.name } end + end + + it "initializes the SLI for all possible endpoints if they weren't", :aggregate_failures do + expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with(:rails_request, array_including(*possible_labels)).and_call_original + expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with(:graphql_query, array_including(*possible_graphql_labels)).and_call_original + expect(Gitlab::Metrics::Sli::ErrorRate).to receive(:initialize_sli).with(:rails_request, array_including(*possible_labels)).and_call_original + + described_class.initialize_request_slis! + end + + it "initializes the SLI for all possible endpoints if they weren't given error rate feature flag is disabled", :aggregate_failures do + stub_feature_flags(gitlab_metrics_error_rate_sli: false) expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with(:rails_request, array_including(*possible_labels)).and_call_original expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with(:graphql_query, array_including(*possible_graphql_labels)).and_call_original + expect(Gitlab::Metrics::Sli::ErrorRate).not_to receive(:initialize_sli) described_class.initialize_request_slis! end @@ -51,6 +66,14 @@ RSpec.describe Gitlab::Metrics::RailsSlis do end end + describe '.request_error' do + it 'returns the initialized request error rate SLI object' do + described_class.initialize_request_slis! + + expect(described_class.request_error_rate).to be_initialized + end + end + describe '.graphql_query_apdex' do it 'returns the initialized request apdex SLI object' do described_class.initialize_request_slis! |