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/issues/clone_service_spec.rb')
-rw-r--r--spec/services/issues/clone_service_spec.rb26
1 files changed, 20 insertions, 6 deletions
diff --git a/spec/services/issues/clone_service_spec.rb b/spec/services/issues/clone_service_spec.rb
index 858dfc4ab3a..435488b7f66 100644
--- a/spec/services/issues/clone_service_spec.rb
+++ b/spec/services/issues/clone_service_spec.rb
@@ -57,8 +57,20 @@ RSpec.describe Issues::CloneService do
expect(old_issue.notes.last.note).to start_with 'cloned to'
end
- it 'adds system note to new issue at the end' do
- expect(new_issue.notes.last.note).to start_with 'cloned from'
+ it 'adds system note to new issue at the start' do
+ # We set an assignee so an assignee system note will be generated and
+ # we can assert that the "cloned from" note is the first one
+ assignee = create(:user)
+ new_project.add_developer(assignee)
+ old_issue.assignees = [assignee]
+
+ new_issue = clone_service.execute(old_issue, new_project)
+
+ expect(new_issue.notes.size).to eq(2)
+
+ cloned_from_note = new_issue.notes.last
+ expect(cloned_from_note.note).to start_with 'cloned from'
+ expect(new_issue.notes.fresh.first).to eq(cloned_from_note)
end
it 'keeps old issue open' do
@@ -128,11 +140,11 @@ RSpec.describe Issues::CloneService do
context 'issue with award emoji' do
let!(:award_emoji) { create(:award_emoji, awardable: old_issue) }
- it 'copies the award emoji' do
+ it 'does not copy the award emoji' do
old_issue.reload
new_issue = clone_service.execute(old_issue, new_project)
- expect(old_issue.award_emoji.first.name).to eq new_issue.reload.award_emoji.first.name
+ expect(new_issue.reload.award_emoji).to be_empty
end
end
@@ -170,19 +182,21 @@ RSpec.describe Issues::CloneService do
context 'issue with due date' do
let(:date) { Date.parse('2020-01-10') }
+ let(:new_date) { date + 1.week }
let(:old_issue) do
create(:issue, title: title, description: description, project: old_project, author: author, due_date: date)
end
before do
- SystemNoteService.change_due_date(old_issue, old_project, author, old_issue.due_date)
+ old_issue.update!(due_date: new_date)
+ SystemNoteService.change_start_date_or_due_date(old_issue, old_project, author, old_issue.previous_changes.slice('due_date'))
end
it 'keeps the same due date' do
new_issue = clone_service.execute(old_issue, new_project)
- expect(new_issue.due_date).to eq(date)
+ expect(new_issue.due_date).to eq(old_issue.due_date)
end
end