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