Skip to content
Snippets Groups Projects
Commit 95865da5 authored by Stan Hu's avatar Stan Hu
Browse files

Fix bug where award emojis would be lost when moving issues between projects

Closes #33423
parent 3576d59a
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -24,7 +24,7 @@ module Issues
@new_issue = create_new_issue
 
rewrite_notes
rewrite_award_emoji
rewrite_issue_award_emoji
add_note_moved_from
 
# Old issue tasks
Loading
Loading
@@ -76,7 +76,7 @@ module Issues
end
 
def rewrite_notes
@old_issue.notes.find_each do |note|
@old_issue.notes_with_associations.find_each do |note|
new_note = note.dup
new_params = { project: @new_project, noteable: @new_issue,
note: rewrite_content(new_note.note),
Loading
Loading
@@ -84,13 +84,19 @@ module Issues
updated_at: note.updated_at }
 
new_note.update(new_params)
rewrite_award_emoji(note, new_note)
end
end
 
def rewrite_award_emoji
@old_issue.award_emoji.each do |award|
def rewrite_issue_award_emoji
rewrite_award_emoji(@old_issue, @new_issue)
end
def rewrite_award_emoji(old_awardable, new_awardable)
old_awardable.award_emoji.each do |award|
new_award = award.dup
new_award.awardable = @new_issue
new_award.awardable = new_awardable
new_award.save
end
end
Loading
Loading
---
title: Fix bug where award emojis would be lost when moving issues between projects
merge_request:
author:
type: fixed
Loading
Loading
@@ -179,13 +179,15 @@ describe Issues::MoveService do
{ system: true, note: 'Some system note' },
{ system: false, note: 'Some comment 2' }]
end
let(:award_names) { %w(thumbsup thumbsdown facepalm) }
let(:notes_contents) { notes_params.map { |n| n[:note] } }
 
before do
note_params = { noteable: old_issue, project: old_project, author: author }
notes_params.each do |note|
create(:note, note_params.merge(note))
notes_params.each_with_index do |note, index|
new_note = create(:note, note_params.merge(note))
award_emoji_params = { awardable: new_note, name: award_names[index] }
create(:award_emoji, award_emoji_params)
end
end
 
Loading
Loading
@@ -199,6 +201,10 @@ describe Issues::MoveService do
expect(all_notes.pluck(:note).first(3)).to eq notes_contents
end
 
it 'creates new emojis for the new notes' do
expect(all_notes.map(&:award_emoji).to_a.flatten.map(&:name)).to eq award_names
end
it 'adds a system note about move after rewritten notes' do
expect(system_notes.last.note).to match /^moved from/
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment