diff --git a/ee/spec/lib/gitlab/llm/completions/resolve_vulnerability/shared_examples.rb b/ee/spec/lib/gitlab/llm/completions/resolve_vulnerability/shared_examples.rb
index 550f909c1ffdfbf28fd790ba23d40dd9ace38dfc..9704e33a4d2c71b1391156bbf77e27caeaa2a71e 100644
--- a/ee/spec/lib/gitlab/llm/completions/resolve_vulnerability/shared_examples.rb
+++ b/ee/spec/lib/gitlab/llm/completions/resolve_vulnerability/shared_examples.rb
@@ -45,6 +45,23 @@ def expect_tracked_error(error)
   expect(Gitlab::ErrorTracking).to have_received(:track_exception).with(error)
 end
 
+def expect_tracked_internal_event(event_name, status)
+  internal_merge_request_id = status == "error" ? nil : merge_request.id
+  expect(Gitlab::InternalEvents).to receive(:track_event).with(event_name,
+    project: project,
+    user: user,
+    namespace: project.namespace,
+    category: described_class.to_s,
+    additional_properties: {
+      property: status,
+      label: "resolve_vulnerability",
+      vulnerability_id: vulnerability.id,
+      internal_merge_request_id: internal_merge_request_id,
+      language: "C"
+    }
+  )
+end
+
 RSpec.shared_examples "a resolve vulnerability completion" do
   before do
     stub_licensed_features(security_dashboard: true)
@@ -242,19 +259,7 @@ def expect_tracked_error(error)
     end
 
     it 'tracks internal event with success' do
-      expect(Gitlab::InternalEvents).to receive(:track_event).with('track_mr_creation_from_vr',
-        project: project,
-        user: user,
-        namespace: project.namespace,
-        category: described_class.to_s,
-        additional_properties: {
-          property: "success",
-          label: "resolve_vulnerability",
-          vulnerability_id: vulnerability.id,
-          internal_merge_request_id: merge_request.id,
-          language: "C"
-        }
-      )
+      expect_tracked_internal_event("track_mr_creation_from_vr", "success")
 
       resolve.execute
     end
@@ -289,19 +294,7 @@ def expect_tracked_error(error)
       end
 
       it 'tracks internal event with success' do
-        expect(Gitlab::InternalEvents).to receive(:track_event).with('track_mr_creation_from_vr_in_mr_request',
-          project: project,
-          user: user,
-          namespace: project.namespace,
-          category: described_class.to_s,
-          additional_properties: {
-            property: "success",
-            label: "resolve_vulnerability",
-            vulnerability_id: vulnerability.id,
-            internal_merge_request_id: merge_request.id,
-            language: "C"
-          }
-        )
+        expect_tracked_internal_event("track_mr_creation_from_vr_in_mr_request", "success")
 
         resolve.execute
       end
@@ -352,19 +345,7 @@ def expect_tracked_error(error)
       end
 
       it 'tracks internal event with error' do
-        expect(Gitlab::InternalEvents).to receive(:track_event).with('track_mr_creation_from_vr',
-          project: project,
-          user: user,
-          namespace: project.namespace,
-          category: described_class.to_s,
-          additional_properties: {
-            property: "error",
-            label: "resolve_vulnerability",
-            vulnerability_id: vulnerability.id,
-            internal_merge_request_id: nil,
-            language: "C"
-          }
-        )
+        expect_tracked_internal_event("track_mr_creation_from_vr", "error")
 
         resolve.execute
       end