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 | 53 |
1 files changed, 28 insertions, 25 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 74e63d219bd..9a1ffd8d01d 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 @@ -50,11 +50,29 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl end describe '.track_create_mr_action' do - subject { described_class.track_create_mr_action(user: user) } + subject { described_class.track_create_mr_action(user: user, merge_request: merge_request) } + + let(:merge_request) { create(:merge_request) } + let(:target_project) { merge_request.target_project } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_USER_CREATE_ACTION } + end it_behaves_like 'a tracked merge request unique event' do let(:action) { described_class::MR_CREATE_ACTION } end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:action) { :create } + let(:category) { described_class.name } + let(:project) { target_project } + let(:namespace) { project.namespace.reload } + let(:user) { project.creator } + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:label) { 'redis_hll_counters.code_review.i_code_review_create_mr_monthly' } + let(:property) { described_class::MR_CREATE_ACTION } + end end describe '.track_close_mr_action' do @@ -94,30 +112,15 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl let(:action) { described_class::MR_APPROVE_ACTION } end - it 'records correct payload with Snowplow event', :snowplow do - stub_feature_flags(route_hll_to_snowplow_phase2: true) - - subject - - expect_snowplow_event( - category: 'merge_requests', - action: 'i_code_review_user_approve_mr', - namespace: target_project.namespace, - user: user, - project: target_project - ) - end - - context 'when FF is disabled' do - before do - stub_feature_flags(route_hll_to_snowplow_phase2: false) - end - - it 'doesnt emit snowplow events', :snowplow do - subject - - expect_no_snowplow_event - end + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:action) { :approve } + let(:category) { described_class.name } + let(:project) { target_project } + let(:namespace) { project.namespace.reload } + let(:user) { project.creator } + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:label) { 'redis_hll_counters.code_review.i_code_review_user_approve_mr_monthly' } + let(:property) { described_class::MR_APPROVE_ACTION } end end |