From 1539ce8540d803a91d930d6e47cabd9da6ad41a7 Mon Sep 17 00:00:00 2001
From: Harsha Muralidhar <hmuralidhar@gitlab.com>
Date: Tue, 23 May 2023 00:02:00 +0000
Subject: [PATCH] Adds retry to vulnerability create and correctly quarantines

---
 .../vulnerability_management_spec.rb          | 24 ++++++++++---------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb
index 7bedec8b30044..de1057c24779c 100644
--- a/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb
+++ b/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb
@@ -1,11 +1,7 @@
 # frozen_string_literal: true
 
 module QA
-  RSpec.describe 'Govern', :runner, product_group: :threat_insights,
-  quarantine: {
-    issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/407467',
-    type: :flaky
-  } do
+  RSpec.describe 'Govern', :runner, product_group: :threat_insights do
     describe 'Vulnerability management in a merge request' do
       let(:sast_vuln_count) { 5 }
       let(:dependency_scan_vuln_count) { 4 }
@@ -26,11 +22,13 @@ module QA
       end
 
       let!(:vulnerability_report) do
-        QA::EE::Resource::VulnerabilityItem.fabricate_via_api! do |vulnerability|
-          vulnerability.id = project.id
-          vulnerability.severity = :CRITICAL
-          vulnerability.name = "Bowling vulnerability"
-          vulnerability.description = "Run in and roll your arms and pitch the ball"
+        Support::Retrier.retry_on_exception(sleep_interval: 2, message: "Retrying vulnerability create graphql api") do
+          QA::EE::Resource::VulnerabilityItem.fabricate_via_api! do |vulnerability|
+            vulnerability.id = project.id
+            vulnerability.severity = :CRITICAL
+            vulnerability.name = "Bowling vulnerability"
+            vulnerability.description = "Run in and roll your arms and pitch the ball"
+          end
         end
       end
 
@@ -105,7 +103,11 @@ module QA
       end
 
       it 'can create an auto-remediation MR from mr security widget',
-        testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348009' do
+        testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348009',
+        quarantine: {
+          issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/407467',
+          type: :flaky
+        } do
         Page::MergeRequest::Show.perform do |merge_request|
           expect(merge_request).to have_vulnerability_report
           merge_request.resolve_vulnerability_with_mr(remediable_vuln_name)
-- 
GitLab