From 157cd395c6347ef2a3a32b897c92d5f02bca701a Mon Sep 17 00:00:00 2001
From: Gary Holtz <gholtz@gitlab.com>
Date: Wed, 20 Dec 2023 04:39:23 +0000
Subject: [PATCH] Fixed an incorrect parameter for deleting draft notes in the
 API

Changelog: fixed
---
 app/services/draft_notes/destroy_service.rb | 8 +++++---
 lib/api/draft_notes.rb                      | 4 +++-
 spec/requests/api/draft_notes_spec.rb       | 4 ++++
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/app/services/draft_notes/destroy_service.rb b/app/services/draft_notes/destroy_service.rb
index ddca0debb037..6c7b0dfdbd70 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 6fadc68233dd..3d046ec4a9ba 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 f15ed6e2d5f1..fc465fa7c425 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
-- 
GitLab