Skip to content
代码片段 群组 项目
提交 6f62c6cf 编辑于 作者: Dan Davison's avatar Dan Davison
浏览文件

Merge branch 'hm-make-change-status-spec-deterministic' into 'master'

[E2E] Make change vulnerability status spec deterministic

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124047



Merged-by: default avatarDan Davison <ddavison@gitlab.com>
Approved-by: default avatarJohn McDonnell <jmcdonnell@gitlab.com>
Approved-by: default avatarDan Davison <ddavison@gitlab.com>
Co-authored-by: default avatarhmuralidhar <hmuralidhar@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -31,10 +31,11 @@ module QA ...@@ -31,10 +31,11 @@ module QA
end end
let(:vuln_name) { "Greyhound vulnerability" } let(:vuln_name) { "Greyhound vulnerability" }
# remove `'dismissed': 'dismiss'` until test can account for `dismissal_reason` feature flag let(:dismissed_state) { "dismissed" }
let(:dismissal_reason) { "false_positive" }
let(:confirmed_state) { "confirmed" }
let(:resolved_state) { "resolved" }
let(:vuln_status_hash) { { 'resolved': 'resolve', 'confirmed': 'confirm' } } let(:vuln_status_hash) { { 'resolved': 'resolve', 'confirmed': 'confirm' } }
let(:vuln_status_sample) { vuln_status_hash.keys.sample.to_s }
let(:change_state) { vuln_status_hash[vuln_status_sample.to_sym] }
let(:vuln_severity) { :CRITICAL } let(:vuln_severity) { :CRITICAL }
before do before do
...@@ -53,31 +54,45 @@ module QA ...@@ -53,31 +54,45 @@ module QA
end end
EE::Page::Project::Secure::VulnerabilityDetails.perform do |vulnerability_details| EE::Page::Project::Secure::VulnerabilityDetails.perform do |vulnerability_details|
vulnerability_details.change_status(vuln_status_sample) vulnerability_details.change_status(resolved_state)
expect(vulnerability_details).to have_vulnerability_status(vuln_status_sample) expect(vulnerability_details).to have_vulnerability_status(resolved_state)
end end
Page::Project::Menu.perform(&:go_to_vulnerability_report) Page::Project::Menu.perform(&:go_to_vulnerability_report)
EE::Page::Project::Secure::Show.perform do |security_dashboard| EE::Page::Project::Secure::Show.perform do |security_dashboard|
security_dashboard.filter_by_status([vuln_status_sample]) security_dashboard.filter_by_status([resolved_state])
expect(security_dashboard).to have_vulnerability(vuln_name) expect(security_dashboard).to have_vulnerability(vuln_name)
end end
end end
it 'can successfully bulk change status in vulnerability report', it 'can successfully bulk change status to confirmed in vulnerability report',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/361405' do testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/361405' do
Page::Project::Menu.perform(&:go_to_vulnerability_report) Page::Project::Menu.perform(&:go_to_vulnerability_report)
bulk_change_status(confirmed_state)
verify_changed_status(confirmed_state)
end
it 'can bulk dismiss vulnerabilities as false positive in vulnerability report',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/415647' do
Page::Project::Menu.perform(&:go_to_vulnerability_report)
bulk_change_status(dismissed_state)
verify_changed_status(dismissed_state)
end
def bulk_change_status(status)
EE::Page::Project::Secure::SecurityDashboard.perform do |security_dashboard| EE::Page::Project::Secure::SecurityDashboard.perform do |security_dashboard|
security_dashboard.select_all_vulnerabilities security_dashboard.select_all_vulnerabilities
security_dashboard.change_state(vuln_status_sample) security_dashboard.change_state(status)
end end
end
def verify_changed_status(status)
EE::Page::Project::Secure::Show.perform do |security_dashboard| EE::Page::Project::Secure::Show.perform do |security_dashboard|
security_dashboard.filter_by_status([vuln_status_sample]) security_dashboard.filter_by_status([status])
vulnerabilities.each do |name, _description| vulnerabilities.each do |name, _description|
expect(security_dashboard).to have_vulnerability(name) expect(security_dashboard).to have_vulnerability(name)
expect(security_dashboard).to have_status(vuln_status_sample, name) expect(security_dashboard).to have_status(status, name)
end end
end end
end end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册