From d24c70ce471d95e4a5e6bb5e3ad289cd9bc9cea5 Mon Sep 17 00:00:00 2001
From: Harsha Muralidhar <hmuralidhar@gitlab.com>
Date: Mon, 18 Sep 2023 18:38:27 +0000
Subject: [PATCH] Try to fix flaky ambiguous element error

---
 .../mr_widget_security_reports.vue               |  2 +-
 qa/qa/ee/page/merge_request/show.rb              | 16 +++++++++-------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue
index 8dac99d050e10..e48daa3b2c640 100644
--- a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue
+++ b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue
@@ -611,7 +611,7 @@ export default {
     :help-popover="$options.widgetHelpPopover"
     :action-buttons="actionButtons"
     multi-polling
-    data-qa-selector="vulnerability_report_grouped"
+    data-testid="vulnerability-report-grouped"
     @is-loading="handleIsLoading"
   >
     <template #summary>
diff --git a/qa/qa/ee/page/merge_request/show.rb b/qa/qa/ee/page/merge_request/show.rb
index 82b3ba9118c52..af22cb6d55ff3 100644
--- a/qa/qa/ee/page/merge_request/show.rb
+++ b/qa/qa/ee/page/merge_request/show.rb
@@ -21,7 +21,7 @@ def self.prepended(base)
               end
 
               view 'ee/app/assets/javascripts/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue' do
-                element :vulnerability_report_grouped
+                element 'vulnerability-report-grouped'
                 element :sast_scan_report
                 element :dependency_scan_report
                 element :container_scan_report
@@ -117,7 +117,7 @@ def expand_license_report
           end
 
           def expand_vulnerability_report
-            within_element :vulnerability_report_grouped do
+            within_element 'vulnerability-report-grouped' do
               click_element :expand_report_button unless has_content? 'Collapse'
             end
           end
@@ -125,7 +125,7 @@ def expand_vulnerability_report
           def click_vulnerability(name)
             # To fix the flakiness, click on the MR title after widget is expanded
             click_element(:title_content)
-            within_element :vulnerability_report_grouped do
+            within_element 'vulnerability-report-grouped' do
               click_on name
             end
 
@@ -180,18 +180,20 @@ def cancel_vulnerability_modal
 
           def has_vulnerability_report?(timeout: 60)
             wait_until(reload: true, max_duration: timeout, sleep_interval: 1) do
-              has_element?(:vulnerability_report_grouped, wait: 10)
+              has_element?('vulnerability-report-grouped', wait: 10)
             end
-            find_element(:vulnerability_report_grouped).has_no_content?("is loading")
+            find_element('vulnerability-report-grouped').has_no_content?("is loading")
           end
 
           def has_vulnerability_count?(expected_count = nil)
             # Match text cut off in order to find both "1 vulnerability" and "X vulnerabilities"
+            click_element(:title_content)
+
             unless expected_count
-              return find_element(:vulnerability_report_grouped).has_content?(/Security scanning detected/)
+              return find_element('vulnerability-report-grouped').has_content?(/Security scanning detected/)
             end
 
-            find_element(:vulnerability_report_grouped).has_content?(/Security scanning detected #{expected_count}( new)?( potential)? vulnerabilit/)
+            find_element('vulnerability-report-grouped').has_content?(/Security scanning detected #{expected_count}( new)?( potential)? vulnerabilit/)
           end
 
           def has_sast_vulnerability_count_of?(expected)
-- 
GitLab