diff options
Diffstat (limited to 'spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb')
-rw-r--r-- | spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb index a604de4a61f..6486a5a22ba 100644 --- a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb +++ b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb @@ -21,6 +21,14 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl end end + shared_examples_for 'not tracked merge request unique event' do + specify do + expect(Gitlab::UsageDataCounters::HLLRedisCounter).not_to receive(:track_event) + + subject + end + end + describe '.track_mr_diffs_action' do subject { described_class.track_mr_diffs_action(merge_request: merge_request) } @@ -284,4 +292,98 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl let(:action) { described_class::MR_CREATE_FROM_ISSUE_ACTION } end end + + describe '.track_discussion_locked_action' do + subject { described_class.track_discussion_locked_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_DISCUSSION_LOCKED_ACTION } + end + end + + describe '.track_discussion_unlocked_action' do + subject { described_class.track_discussion_unlocked_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_DISCUSSION_UNLOCKED_ACTION } + end + end + + describe '.track_time_estimate_changed_action' do + subject { described_class.track_time_estimate_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_TIME_ESTIMATE_CHANGED_ACTION } + end + end + + describe '.track_time_spent_changed_action' do + subject { described_class.track_time_spent_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_TIME_SPENT_CHANGED_ACTION } + end + end + + describe '.track_assignees_changed_action' do + subject { described_class.track_assignees_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_ASSIGNEES_CHANGED_ACTION } + end + end + + describe '.track_reviewers_changed_action' do + subject { described_class.track_reviewers_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_REVIEWERS_CHANGED_ACTION } + end + end + + describe '.track_mr_including_ci_config' do + subject { described_class.track_mr_including_ci_config(user: user, merge_request: merge_request) } + + context 'when merge request includes a ci config change' do + before do + allow(merge_request).to receive(:diff_stats).and_return([double(path: 'abc.txt'), double(path: '.gitlab-ci.yml')]) + end + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_INCLUDING_CI_CONFIG_ACTION } + end + + context 'when FF usage_data_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile is disabled' do + before do + stub_feature_flags(usage_data_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile: false) + end + + it_behaves_like 'not tracked merge request unique event' + end + end + + context 'when merge request does not include any ci config change' do + before do + allow(merge_request).to receive(:diff_stats).and_return([double(path: 'abc.txt'), double(path: 'abc.xyz')]) + end + + it_behaves_like 'not tracked merge request unique event' + end + end + + describe '.track_milestone_changed_action' do + subject { described_class.track_milestone_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_MILESTONE_CHANGED_ACTION } + end + end + + describe '.track_labels_changed_action' do + subject { described_class.track_labels_changed_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_LABELS_CHANGED_ACTION } + end + end end |