Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/system_notes/time_tracking_service_spec.rb')
-rw-r--r--spec/services/system_notes/time_tracking_service_spec.rb91
1 files changed, 73 insertions, 18 deletions
diff --git a/spec/services/system_notes/time_tracking_service_spec.rb b/spec/services/system_notes/time_tracking_service_spec.rb
index 33608deaa64..c856caa3f3e 100644
--- a/spec/services/system_notes/time_tracking_service_spec.rb
+++ b/spec/services/system_notes/time_tracking_service_spec.rb
@@ -48,12 +48,6 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
expect(note.note).to eq("changed due date to #{due_date.to_s(:long)}")
end
- it 'tracks the issue event in usage ping' do
- expect(activity_counter_class).to receive(activity_counter_method).with(author: author)
-
- subject
- end
-
context 'and start date removed' do
let(:changed_dates) { { 'due_date' => [nil, due_date], 'start_date' => [start_date, nil] } }
@@ -66,12 +60,18 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
context 'when start_date is added' do
let(:changed_dates) { { 'start_date' => [nil, start_date] } }
- it 'does not track the issue event in usage ping' do
+ it 'does not track the issue event' do
expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_due_date_changed_action)
subject
end
+ it 'does not emit snowplow event', :snowplow do
+ expect_no_snowplow_event
+
+ subject
+ end
+
it 'sets the correct note message' do
expect(note.note).to eq("changed start date to #{start_date.to_s(:long)}")
end
@@ -111,12 +111,19 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
subject
end
- it 'tracks the issue event in usage ping' do
- expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_due_date_changed_action).with(author: author)
+ it 'tracks the issue event' do
+ expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_due_date_changed_action)
+ .with(author: author, project: project)
subject
end
+ it_behaves_like 'issue_edit snowplow tracking' do
+ let(:property) { Gitlab::UsageDataCounters::IssueActivityUniqueCounter::ISSUE_DUE_DATE_CHANGED }
+ let(:user) { author }
+ subject(:service_action) { note }
+ end
+
context 'when only start_date is added' do
let(:changed_dates) { { 'start_date' => [nil, start_date] } }
@@ -135,12 +142,18 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
it_behaves_like 'issuable getting date change notes'
- it 'does not track the issue event in usage ping' do
+ it 'does not track the issue event' do
expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_due_date_changed_action)
subject
end
+ it 'does not emit snowplow event', :snowplow do
+ expect_no_snowplow_event
+
+ subject
+ end
+
context 'when only start_date is added' do
let(:changed_dates) { { 'start_date' => [nil, start_date] } }
@@ -155,12 +168,23 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
context 'when noteable is a merge request' do
let(:noteable) { create(:merge_request, source_project: project) }
- it 'does not track the issue event in usage ping' do
+ it 'does not track the issue event' do
expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_due_date_changed_action)
+
+ subject
+ end
+
+ it 'does not track the work item event in usage ping' do
expect(Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter).not_to receive(:track_work_item_date_changed_action)
subject
end
+
+ it 'does not emit snowplow event', :snowplow do
+ expect_no_snowplow_event
+
+ subject
+ end
end
end
@@ -201,17 +225,31 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
end
it 'tracks the issue event in usage ping' do
- expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_time_estimate_changed_action).with(author: author)
+ expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_time_estimate_changed_action)
+ .with(author: author, project: project)
subject
end
+
+ it_behaves_like 'issue_edit snowplow tracking' do
+ let(:property) { Gitlab::UsageDataCounters::IssueActivityUniqueCounter::ISSUE_TIME_ESTIMATE_CHANGED }
+ let(:user) { author }
+ let(:service_action) { subject }
+ end
end
context 'when noteable is a merge request' do
let_it_be(:noteable) { create(:merge_request, source_project: project) }
- it 'does not track the issue event in usage ping' do
- expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_time_estimate_changed_action).with(author: author)
+ it 'does not track the issue event' do
+ expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_time_estimate_changed_action)
+ .with(author: author, project: project)
+
+ subject
+ end
+
+ it 'does not emit snowplow event', :snowplow do
+ expect_no_snowplow_event
subject
end
@@ -316,25 +354,42 @@ RSpec.describe ::SystemNotes::TimeTrackingService do
end
end
- it 'tracks the issue event in usage ping' do
- expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_time_spent_changed_action).with(author: author)
+ it 'tracks the issue event' do
+ expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).to receive(:track_issue_time_spent_changed_action)
+ .with(author: author, project: project)
spend_time!(277200)
subject
end
+
+ it_behaves_like 'issue_edit snowplow tracking' do
+ let(:property) { Gitlab::UsageDataCounters::IssueActivityUniqueCounter::ISSUE_TIME_SPENT_CHANGED }
+ let(:user) { author }
+ let(:service_action) do
+ spend_time!(277200)
+ subject
+ end
+ end
end
context 'when noteable is a merge request' do
let_it_be(:noteable) { create(:merge_request, source_project: project) }
- it 'does not track the issue event in usage ping' do
- expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_time_estimate_changed_action).with(author: author)
+ it 'does not track the issue event' do
+ expect(Gitlab::UsageDataCounters::IssueActivityUniqueCounter).not_to receive(:track_issue_time_estimate_changed_action)
+ .with(author: author, project: project)
spend_time!(277200)
subject
end
+
+ it 'does not emit snowplow event', :snowplow do
+ expect_no_snowplow_event
+
+ subject
+ end
end
def spend_time!(seconds)