diff --git a/ee/app/assets/javascripts/vue_shared/security_reports/components/modal_footer.vue b/ee/app/assets/javascripts/vue_shared/security_reports/components/modal_footer.vue index e9af0ce779917af4059e7ec72b54dea5d4cc0ea4..5dc9440c49cbf043dc4ae3c34c712fc026dabe91 100644 --- a/ee/app/assets/javascripts/vue_shared/security_reports/components/modal_footer.vue +++ b/ee/app/assets/javascripts/vue_shared/security_reports/components/modal_footer.vue @@ -112,7 +112,7 @@ export default { <template> <div> - <gl-button :disabled="disabled" @click="$emit('cancel')"> + <gl-button data-qa-selector="cancel_button" :disabled="disabled" @click="$emit('cancel')"> {{ __('Cancel') }} </gl-button> diff --git a/qa/qa/ee/page/merge_request/show.rb b/qa/qa/ee/page/merge_request/show.rb index e207bd462313666a40bb7be9eccdaac6d8db4721..a21bf03e82286511547931e38db7d400e78be729 100644 --- a/qa/qa/ee/page/merge_request/show.rb +++ b/qa/qa/ee/page/merge_request/show.rb @@ -57,6 +57,7 @@ def self.prepended(base) view 'ee/app/assets/javascripts/vue_shared/security_reports/components/modal_footer.vue' do element :resolve_split_button element :create_issue_button + element :cancel_button end view 'ee/app/assets/javascripts/vue_shared/security_reports/components/dismiss_button.vue' do @@ -165,6 +166,10 @@ def create_vulnerability_issue(name) end end + def cancel_vulnerability_modal + click_element(:cancel_button) + end + def has_vulnerability_report?(timeout: 60) wait_until(reload: true, max_duration: timeout, sleep_interval: 1) do has_element?(:vulnerability_report_grouped, wait: 10) diff --git a/qa/qa/specs/features/ee/browser_ui/13_secure/vulnerability_management_spec.rb b/qa/qa/specs/features/ee/browser_ui/13_secure/vulnerability_management_spec.rb index e75f61493f668a802f4a06bd1444d998d04e8f08..67534d5110fcd30ade67c03a698ac1356b9a9c98 100644 --- a/qa/qa/specs/features/ee/browser_ui/13_secure/vulnerability_management_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/13_secure/vulnerability_management_spec.rb @@ -68,7 +68,32 @@ module QA merge_request.click_vulnerability(vuln_name) expect(merge_request).to have_opened_dismissed_vulnerability(dismiss_reason) + + merge_request.cancel_vulnerability_modal + end + + merge_request.merge_via_api! + + expect { project.pipelines.size }.to eventually_eq(2).within(max_duration: 60), + "There are currently #{project.pipelines.size} pipelines in the project instead of 2" + + Support::Waiter.wait_until(sleep_interval: 3) do + latest_pipeline_status == 'success' end + Page::Project::Menu.perform(&:click_on_vulnerability_report) + + EE::Page::Project::Secure::Show.perform do |security_dashboard| + security_dashboard.filter_by_status(['dismissed']) + + expect(security_dashboard).to have_status('dismissed', vuln_name) + end + end + + def latest_pipeline_status + Resource::Pipeline.fabricate_via_api! do |pipeline| + pipeline.project = project + pipeline.id = project.pipelines.first[:id] + end.status end it 'can create an issue from a vulnerability', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348007' do