summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/usage_data_counters
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/usage_data_counters')
-rw-r--r--spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb16
-rw-r--r--spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb19
-rw-r--r--spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb8
-rw-r--r--spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb8
4 files changed, 27 insertions, 24 deletions
diff --git a/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
index 6a37bfd106d..1ca0bb0e9ea 100644
--- a/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
@@ -65,17 +65,11 @@ RSpec.describe Gitlab::UsageDataCounters::CiTemplateUniqueCounter do
context 'with implicit includes', :snowplow do
let(:config_source) { :auto_devops_source }
- [
- ['', ['Auto-DevOps.gitlab-ci.yml']],
- ['Jobs', described_class.ci_templates('lib/gitlab/ci/templates/Jobs')],
- ['Security', described_class.ci_templates('lib/gitlab/ci/templates/Security')]
- ].each do |directory, templates|
- templates.each do |template|
- context "for #{template}" do
- let(:template_path) { File.join(directory, template) }
-
- include_examples 'tracks template'
- end
+ described_class.all_included_templates('Auto-DevOps.gitlab-ci.yml').each do |template_name|
+ context "for #{template_name}" do
+ let(:template_path) { Gitlab::Template::GitlabCiYmlTemplate.find(template_name.delete_suffix('.gitlab-ci.yml')).full_name }
+
+ include_examples 'tracks template'
end
end
end
diff --git a/spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb b/spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb
index 01396602f29..e122d9a3026 100644
--- a/spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb
@@ -6,19 +6,22 @@ require 'spec_helper'
# NOTE: ONLY user related metrics to be added to the aggregates - otherwise add it to the exception list
RSpec.describe 'Code review events' do
it 'the aggregated metrics contain all the code review metrics' do
- path = Rails.root.join('config/metrics/aggregates/code_review.yml')
- aggregated_events = YAML.safe_load(File.read(path), aliases: true)&.map(&:with_indifferent_access)
-
- code_review_aggregated_events = aggregated_events
- .map { |event| event['events'] }
- .flatten
- .uniq
-
code_review_events = Gitlab::UsageDataCounters::HLLRedisCounter.events_for_category("code_review")
+ code_review_aggregated_events = Gitlab::Usage::MetricDefinition.all.flat_map do |definition|
+ next [] unless code_review_aggregated_metric?(definition.attributes)
+
+ definition.attributes.dig(:options, :events)
+ end.uniq
exceptions = %w[i_code_review_mr_diffs i_code_review_mr_with_invalid_approvers i_code_review_mr_single_file_diffs i_code_review_total_suggestions_applied i_code_review_total_suggestions_added i_code_review_create_note_in_ipynb_diff i_code_review_create_note_in_ipynb_diff_mr i_code_review_create_note_in_ipynb_diff_commit]
code_review_aggregated_events += exceptions
expect(code_review_events - code_review_aggregated_events).to be_empty
end
+
+ def code_review_aggregated_metric?(attributes)
+ return false unless attributes[:product_group] == 'code_review' && attributes[:status] == 'active'
+
+ attributes[:instrumentation_class] == 'AggregatedMetric'
+ end
end
diff --git a/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
index 3fb2532521a..d0b935d59dd 100644
--- a/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
@@ -24,8 +24,10 @@ RSpec.describe Gitlab::UsageDataCounters::HLLRedisCounter, :clean_gitlab_redis_s
context 'migration to instrumentation classes data collection' do
let_it_be(:instrumented_events) do
+ instrumentation_classes = %w[AggregatedMetric RedisHLLMetric]
::Gitlab::Usage::MetricDefinition.all.map do |definition|
- next unless definition.attributes[:instrumentation_class] == 'RedisHLLMetric' && definition.available?
+ next unless definition.available?
+ next unless instrumentation_classes.include?(definition.attributes[:instrumentation_class])
definition.attributes.dig(:options, :events)&.sort
end.compact.to_set
@@ -96,21 +98,17 @@ RSpec.describe Gitlab::UsageDataCounters::HLLRedisCounter, :clean_gitlab_redis_s
'source_code',
'incident_management',
'incident_management_alerts',
- 'incident_management_oncall',
'testing',
'issues_edit',
- 'ci_secrets_management',
'snippets',
'code_review',
'terraform',
'ci_templates',
'quickactions',
'pipeline_authoring',
- 'epics_usage',
'secure',
'importer',
'geo',
- 'growth',
'work_items',
'ci_users',
'error_tracking',
diff --git a/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
index 0bcdbe82a7a..2d251017c87 100644
--- a/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb
@@ -28,4 +28,12 @@ RSpec.describe Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter, :clean_
it_behaves_like 'work item unique counter'
end
+
+ describe '.track_work_item_labels_changed_action' do
+ subject(:track_event) { described_class.track_work_item_labels_changed_action(author: user) }
+
+ let(:event_name) { described_class::WORK_ITEM_LABELS_CHANGED }
+
+ it_behaves_like 'work item unique counter'
+ end
end