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 56b55df640478f55ea23d0fba1cc69f35c7adeec..6405bef5880becd214b65b1766d2e9504c61e3fc 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 78cd9d48ec9b959cfad76b490b56beb353853bdc..81eae0dc4ec90bba66dec88b4cd55bf2cc5d6931 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 d76fee686b978969faf6310eee525b31e8de88d0..e62ffd1114cc41dfa6516e0b0ee0c972e41e1f46 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)