summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/metrics/rails_slis_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/metrics/rails_slis_spec.rb')
-rw-r--r--spec/lib/gitlab/metrics/rails_slis_spec.rb37
1 files changed, 25 insertions, 12 deletions
diff --git a/spec/lib/gitlab/metrics/rails_slis_spec.rb b/spec/lib/gitlab/metrics/rails_slis_spec.rb
index 16fcb9d46a2..a5ccf7fafa4 100644
--- a/spec/lib/gitlab/metrics/rails_slis_spec.rb
+++ b/spec/lib/gitlab/metrics/rails_slis_spec.rb
@@ -10,49 +10,62 @@ RSpec.describe Gitlab::Metrics::RailsSlis do
allow(Gitlab::RequestEndpoints).to receive(:all_api_endpoints).and_return([api_route])
allow(Gitlab::RequestEndpoints).to receive(:all_controller_actions).and_return([[ProjectsController, 'show']])
+ allow(Gitlab::Graphql::KnownOperations).to receive(:default).and_return(Gitlab::Graphql::KnownOperations.new(%w(foo bar)))
end
describe '.initialize_request_slis_if_needed!' do
- it "initializes the SLI for all possible endpoints if they weren't" do
+ it "initializes the SLI for all possible endpoints if they weren't", :aggregate_failures do
possible_labels = [
{
endpoint_id: "GET /api/:version/version",
- feature_category: :not_owned
+ feature_category: :not_owned,
+ request_urgency: :default
},
{
endpoint_id: "ProjectsController#show",
- feature_category: :projects
+ feature_category: :projects,
+ request_urgency: :default
}
]
+ possible_graphql_labels = ['graphql:foo', 'graphql:bar', 'graphql:unknown', 'graphql:anonymous'].map do |endpoint_id|
+ {
+ endpoint_id: endpoint_id,
+ feature_category: nil,
+ query_urgency: ::Gitlab::EndpointAttributes::DEFAULT_URGENCY.name
+ }
+ end
+
expect(Gitlab::Metrics::Sli).to receive(:initialized?).with(:rails_request_apdex) { false }
+ expect(Gitlab::Metrics::Sli).to receive(:initialized?).with(:graphql_query_apdex) { false }
expect(Gitlab::Metrics::Sli).to receive(:initialize_sli).with(:rails_request_apdex, array_including(*possible_labels)).and_call_original
+ expect(Gitlab::Metrics::Sli).to receive(:initialize_sli).with(:graphql_query_apdex, array_including(*possible_graphql_labels)).and_call_original
described_class.initialize_request_slis_if_needed!
end
- it 'does not initialize the SLI if they were initialized already' do
+ it 'does not initialize the SLI if they were initialized already', :aggregate_failures do
expect(Gitlab::Metrics::Sli).to receive(:initialized?).with(:rails_request_apdex) { true }
+ expect(Gitlab::Metrics::Sli).to receive(:initialized?).with(:graphql_query_apdex) { true }
expect(Gitlab::Metrics::Sli).not_to receive(:initialize_sli)
described_class.initialize_request_slis_if_needed!
end
+ end
- it 'does not initialize anything if the feature flag is disabled' do
- stub_feature_flags(request_apdex_counters: false)
-
- expect(Gitlab::Metrics::Sli).not_to receive(:initialize_sli)
- expect(Gitlab::Metrics::Sli).not_to receive(:initialized?)
-
+ describe '.request_apdex' do
+ it 'returns the initialized request apdex SLI object' do
described_class.initialize_request_slis_if_needed!
+
+ expect(described_class.request_apdex).to be_initialized
end
end
- describe '.request_apdex' do
+ describe '.graphql_query_apdex' do
it 'returns the initialized request apdex SLI object' do
described_class.initialize_request_slis_if_needed!
- expect(described_class.request_apdex).to be_initialized
+ expect(described_class.graphql_query_apdex).to be_initialized
end
end
end