summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb')
-rw-r--r--spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb31
1 files changed, 31 insertions, 0 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
new file mode 100644
index 00000000000..ba7bfe47bc9
--- /dev/null
+++ b/spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::UsageDataCounters::CiTemplateUniqueCounter do
+ let(:project_id) { 1 }
+
+ describe '.track_unique_project_event' do
+ described_class::TEMPLATE_TO_EVENT.keys.each do |template|
+ context "when given template #{template}" do
+ it_behaves_like 'tracking unique hll events', :usage_data_track_ci_templates_unique_projects do
+ subject(:request) { described_class.track_unique_project_event(project_id: project_id, template: template) }
+
+ let(:target_id) { "p_ci_templates_#{described_class::TEMPLATE_TO_EVENT[template]}" }
+ let(:expected_type) { instance_of(Integer) }
+ end
+ end
+ end
+
+ it 'does not track templates outside of TEMPLATE_TO_EVENT' do
+ expect(Gitlab::UsageDataCounters::HLLRedisCounter).not_to(
+ receive(:track_event)
+ )
+ Dir.glob(File.join('lib', 'gitlab', 'ci', 'templates', '**'), base: Rails.root) do |template|
+ next if described_class::TEMPLATE_TO_EVENT.key?(template)
+
+ described_class.track_unique_project_event(project_id: 1, template: template)
+ end
+ end
+ end
+end