summaryrefslogtreecommitdiff
path: root/spec/services/system_note_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/system_note_service_spec.rb')
-rw-r--r--spec/services/system_note_service_spec.rb113
1 files changed, 13 insertions, 100 deletions
diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb
index fa7b1003b8d..4ba22af85f0 100644
--- a/spec/services/system_note_service_spec.rb
+++ b/spec/services/system_note_service_spec.rb
@@ -76,28 +76,14 @@ describe SystemNoteService do
end
describe '.change_due_date' do
- subject { described_class.change_due_date(noteable, project, author, due_date) }
+ let(:due_date) { double }
- let(:due_date) { Date.today }
-
- it_behaves_like 'a note with overridable created_at'
-
- it_behaves_like 'a system note' do
- let(:action) { 'due_date' }
- end
-
- context 'when due date added' do
- it 'sets the note text' do
- expect(subject.note).to eq "changed due date to #{Date.today.to_s(:long)}"
+ it 'calls TimeTrackingService' do
+ expect_next_instance_of(::SystemNotes::TimeTrackingService) do |service|
+ expect(service).to receive(:change_due_date).with(due_date)
end
- end
- context 'when due date removed' do
- let(:due_date) { nil }
-
- it 'sets the note text' do
- expect(subject.note).to eq 'removed due date'
- end
+ described_class.change_due_date(noteable, project, author, due_date)
end
end
@@ -488,36 +474,12 @@ describe SystemNoteService do
end
describe '.change_time_estimate' do
- subject { described_class.change_time_estimate(noteable, project, author) }
-
- it_behaves_like 'a system note' do
- let(:action) { 'time_tracking' }
- end
-
- context 'with a time estimate' do
- it 'sets the note text' do
- noteable.update_attribute(:time_estimate, 277200)
-
- expect(subject.note).to eq "changed time estimate to 1w 4d 5h"
- end
-
- context 'when time_tracking_limit_to_hours setting is true' do
- before do
- stub_application_setting(time_tracking_limit_to_hours: true)
- end
-
- it 'sets the note text' do
- noteable.update_attribute(:time_estimate, 277200)
-
- expect(subject.note).to eq "changed time estimate to 77h"
- end
+ it 'calls TimeTrackingService' do
+ expect_next_instance_of(::SystemNotes::TimeTrackingService) do |service|
+ expect(service).to receive(:change_time_estimate)
end
- end
- context 'without a time estimate' do
- it 'sets the note text' do
- expect(subject.note).to eq "removed time estimate"
- end
+ described_class.change_time_estimate(noteable, project, author)
end
end
@@ -548,61 +510,12 @@ describe SystemNoteService do
end
describe '.change_time_spent' do
- # We need a custom noteable in order to the shared examples to be green.
- let(:noteable) do
- mr = create(:merge_request, source_project: project)
- mr.spend_time(duration: 360000, user_id: author.id)
- mr.save!
- mr
- end
-
- subject do
- described_class.change_time_spent(noteable, project, author)
- end
-
- it_behaves_like 'a system note' do
- let(:action) { 'time_tracking' }
- end
-
- context 'when time was added' do
- it 'sets the note text' do
- spend_time!(277200)
-
- expect(subject.note).to eq "added 1w 4d 5h of time spent"
+ it 'calls TimeTrackingService' do
+ expect_next_instance_of(::SystemNotes::TimeTrackingService) do |service|
+ expect(service).to receive(:change_time_spent)
end
- end
-
- context 'when time was subtracted' do
- it 'sets the note text' do
- spend_time!(-277200)
-
- expect(subject.note).to eq "subtracted 1w 4d 5h of time spent"
- end
- end
-
- context 'when time was removed' do
- it 'sets the note text' do
- spend_time!(:reset)
- expect(subject.note).to eq "removed time spent"
- end
- end
-
- context 'when time_tracking_limit_to_hours setting is true' do
- before do
- stub_application_setting(time_tracking_limit_to_hours: true)
- end
-
- it 'sets the note text' do
- spend_time!(277200)
-
- expect(subject.note).to eq "added 77h of time spent"
- end
- end
-
- def spend_time!(seconds)
- noteable.spend_time(duration: seconds, user_id: author.id)
- noteable.save!
+ described_class.change_time_spent(noteable, project, author)
end
end