diff --git a/app/services/draft_notes/destroy_service.rb b/app/services/draft_notes/destroy_service.rb index ddca0debb03796761dc3f1ff8a9132ff1b321bf5..6c7b0dfdbd707c8fa5c5370c59099a1169873e65 100644 --- a/app/services/draft_notes/destroy_service.rb +++ b/app/services/draft_notes/destroy_service.rb @@ -15,9 +15,11 @@ def execute(draft = nil) private def clear_highlight_diffs_cache(drafts) - if drafts.any? { |draft| draft.diff_file&.unfolded? } - merge_request.diffs.clear_cache - end + merge_request.diffs.clear_cache if unfolded_drafts?(drafts) + end + + def unfolded_drafts?(drafts) + drafts.any? { |draft| draft.diff_file&.unfolded? } end end end diff --git a/lib/api/draft_notes.rb b/lib/api/draft_notes.rb index 6fadc68233dd605223b5365d75d53f4fcf62fcd7..3d046ec4a9bae634676fe6cde8a9b9e13fc87aa2 100644 --- a/lib/api/draft_notes.rb +++ b/lib/api/draft_notes.rb @@ -22,7 +22,9 @@ def get_draft_note(params:) end def delete_draft_note(draft_note) - ::DraftNotes::DestroyService.new(user_project, current_user).execute(draft_note) + ::DraftNotes::DestroyService + .new(merge_request(params: params), current_user) + .execute(draft_note) end def publish_draft_note(params:) diff --git a/spec/requests/api/draft_notes_spec.rb b/spec/requests/api/draft_notes_spec.rb index f15ed6e2d5f15cbffda8598b0cf765ae8dc1e217..fc465fa7c425892c24b4e18a15b877a76108a698 100644 --- a/spec/requests/api/draft_notes_spec.rb +++ b/spec/requests/api/draft_notes_spec.rb @@ -87,6 +87,10 @@ let!(:deleted_draft_note_id) { draft_note_by_current_user.id } before do + allow_next_instance_of(DraftNotes::DestroyService) do |service| + allow(service).to receive(:unfolded_drafts?).and_return(true) + end + delete api( "#{base_url}/#{draft_note_by_current_user.id}", user