summaryrefslogtreecommitdiff
path: root/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb')
-rw-r--r--spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb b/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb
new file mode 100644
index 00000000000..ea72398010c
--- /dev/null
+++ b/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+RSpec.shared_context 'stubbed service ping metrics definitions' do
+ include UsageDataHelpers
+
+ let(:metrics_definitions) { standard_metrics + subscription_metrics + operational_metrics + optional_metrics }
+ let(:standard_metrics) do
+ [
+ metric_attributes('uuid', "Standard")
+ ]
+ end
+
+ let(:operational_metrics) do
+ [
+ metric_attributes('counts.merge_requests', "Operational"),
+ metric_attributes('counts.todos', "Operational")
+ ]
+ end
+
+ let(:optional_metrics) do
+ [
+ metric_attributes('counts.boards', "Optional"),
+ metric_attributes('gitaly.filesystems', '').except('data_category')
+ ]
+ end
+
+ before do
+ stub_usage_data_connections
+ stub_object_store_settings
+
+ allow(Gitlab::Usage::MetricDefinition).to(
+ receive(:definitions)
+ .and_return(metrics_definitions.to_h { |definition| [definition['key_path'], Gitlab::Usage::MetricDefinition.new('', definition.symbolize_keys)] })
+ )
+ end
+
+ def metric_attributes(key_path, category)
+ {
+ 'key_path' => key_path,
+ 'data_category' => category
+ }
+ end
+end