From a0556e9b03d7e3a63f20f16e8dcb2f5cdcdce8cc Mon Sep 17 00:00:00 2001 From: Harsha Muralidhar <hmuralidhar@gitlab.com> Date: Tue, 16 Jan 2024 18:16:10 +0000 Subject: [PATCH] Fix dismissal reason modal based on FF --- .../vulnerability_dismissal_reason.vue | 1 + .../pipeline/vulnerability_finding_modal.vue | 1 + qa/qa/ee/page/merge_request/show.rb | 29 +++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_dismissal_reason.vue b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_dismissal_reason.vue index 56b55df640478..6405bef5880be 100644 --- a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_dismissal_reason.vue +++ b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_dismissal_reason.vue @@ -59,6 +59,7 @@ export default { </template> <gl-collapsible-listbox id="dismissal-reason" + data-testid="dismissal-reason" :items="$options.items" :selected="value" :toggle-text="toggleText" diff --git a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue index 78cd9d48ec9b9..81eae0dc4ec90 100644 --- a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue +++ b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue @@ -594,6 +594,7 @@ export default { <gl-form-textarea id="dismissal-comment" v-model="dismissalComment" + data-testid="dismissal-comment" :placeholder="$options.i18n.dismissCommentPlaceholder" @keydown.meta.enter="updateDismissal" @keydown.esc.stop.prevent="handleCommentEsc" diff --git a/qa/qa/ee/page/merge_request/show.rb b/qa/qa/ee/page/merge_request/show.rb index d76fee686b978..e62ffd1114cc4 100644 --- a/qa/qa/ee/page/merge_request/show.rb +++ b/qa/qa/ee/page/merge_request/show.rb @@ -49,6 +49,13 @@ def self.prepended(base) view 'ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue' do element 'vulnerability-modal-content' + element 'dismiss-button' + element 'save-editing-dismissal' + element 'dismissal-comment' + end + + view 'ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_dismissal_reason.vue' do + element 'dismissal-reason' end view 'ee/app/assets/javascripts/vue_shared/security_reports/components/modal.vue' do @@ -142,15 +149,31 @@ def dismiss_vulnerability_with_reason(name, reason) end def add_comment_and_dismiss(comment) - click_element :dismiss_with_comment_button - find_element(:dismiss_comment_field).fill_in with: comment, fill_options: { automatic_label_click: true } - click_element :add_and_dismiss_button + if has_element?(:dismiss_with_comment_button) + click_element :dismiss_with_comment_button + find_element(:dismiss_comment_field).fill_in with: comment, fill_options: { automatic_label_click: true } + click_element :add_and_dismiss_button + else + click_element('dismiss-button') + find(dismissal_reason_selector, wait: 5).click + find(dismissal_reason_item_selector("not_applicable")).click + find_element('dismissal-comment').fill_in with: comment, fill_options: { automatic_label_click: true } + click_element('save-editing-dismissal') + end wait_until(reload: false) do has_no_element?('vulnerability-modal-content') end end + def dismissal_reason_selector + "[data-testid='dismissal-reason'] > button" + end + + def dismissal_reason_item_selector(reason) + "[data-testid='listbox-item-#{reason}']" + end + def resolve_vulnerability_with_mr(name) expand_vulnerability_report click_vulnerability(name) -- GitLab