diff --git a/ee/app/assets/javascripts/vulnerabilities/components/related_jira_issues.vue b/ee/app/assets/javascripts/vulnerabilities/components/related_jira_issues.vue index 096ab255075e23b1e4c4392d954ea6629c714da2..97f96152ecec4adcc699528eaf310b7f6af922d9 100644 --- a/ee/app/assets/javascripts/vulnerabilities/components/related_jira_issues.vue +++ b/ee/app/assets/javascripts/vulnerabilities/components/related_jira_issues.vue @@ -209,7 +209,6 @@ export default { :href="issue.web_url" target="_blank" data-testid="jira-issue-link" - :data-qa-issue-key="issue.references.relative" class="gl-text-gray-900" > {{ issue.title }} diff --git a/qa/qa/ee/page/project/secure/vulnerability_details.rb b/qa/qa/ee/page/project/secure/vulnerability_details.rb index e1b40cf3c8985e6968da62768bc95d5e09c11328..91bb26f9d6502e92b731291f634b3a2cb88c8761 100644 --- a/qa/qa/ee/page/project/secure/vulnerability_details.rb +++ b/qa/qa/ee/page/project/secure/vulnerability_details.rb @@ -126,8 +126,8 @@ def has_vulnerability_status?(status) has_element?('vulnerability-status-dropdown', text: "#{status.capitalize}") end - def jira_issue_link_present?(issue_text, jira_issue_url, issue_key) - element = find_element('jira-issue-link', issue_key: issue_key) + def jira_issue_link_present?(issue_text, jira_issue_url) + element = find_element('jira-issue-link') element.text == issue_text && element["href"].include?(jira_issue_url) end end diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb index de0ebce8e6ae040263a54527ce6368a053ed8a3a..ebb9b4420e6bf3d14797323914f16b76fdff4840 100644 --- a/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb @@ -2,11 +2,7 @@ module QA RSpec.describe 'Govern', :jira, :orchestrated, :requires_admin, product_group: :threat_insights do - describe 'vulnerability report with jira integration', - quarantine: { - type: :investigating, - issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/454198" - } do + describe 'vulnerability report with jira integration' do let(:jira_project_key) { 'JITP' } let!(:project) do create(:project, @@ -55,38 +51,15 @@ module QA end EE::Page::Project::Secure::VulnerabilityDetails.perform(&:click_create_jira_issue_button) - jira_description = "" - switch_to_jira_tab - - QA::Vendor::Jira::JiraIssuePage.perform do |jira| - jira.login_if_required(Runtime::Env.jira_admin_username, Runtime::Env.jira_admin_password) - expect(jira.summary_field).to eq(jira_issue_summary) - expect(jira.issue_description).to include(vulnerabilities[vuln_name.to_sym]) - jira_description = jira.issue_description - expect(jira_description).to include("Severity: #{vuln_severity.to_s.downcase}") - end - - issue_key = QA::Vendor::Jira::JiraAPI.perform do |jira_api| - jira_api.create_issue(jira_project_key, summary: jira_issue_summary, description: jira_description) - end - switch_to_vulnerability_report_tab - page.refresh + QA::Support::WaitForRequests.wait_for_requests - jira_link = "#{jira_host}/browse/#{issue_key}" + jira_link = "#{jira_host}/browse/#{jira_project_key}" EE::Page::Project::Secure::VulnerabilityDetails.perform do |vulnerability| - expect(vulnerability.jira_issue_link_present?(jira_issue_summary, jira_link, issue_key)).to be true + expect(vulnerability.jira_issue_link_present?(jira_issue_summary, jira_link)).to be true end end - def switch_to_jira_tab - page.driver.browser.switch_to.window(page.driver.browser.window_handles.last) - end - - def switch_to_vulnerability_report_tab - page.driver.browser.switch_to.window(page.driver.browser.window_handles.first) - end - def set_up_jira_integration Runtime::ApplicationSettings.set_application_settings(allow_local_requests_from_web_hooks_and_services: true) diff --git a/qa/qa/vendor/jira/jira_issue_page.rb b/qa/qa/vendor/jira/jira_issue_page.rb deleted file mode 100644 index 5f5449513ffa28ec46c5a3c9fbd9fbc296427dca..0000000000000000000000000000000000000000 --- a/qa/qa/vendor/jira/jira_issue_page.rb +++ /dev/null @@ -1,47 +0,0 @@ -# frozen_string_literal: true - -require 'capybara/dsl' - -module QA - module Vendor - module Jira - class JiraIssuePage < JiraAPI - include Capybara::DSL - include Scenario::Actable - - def login(username, password) - QA::Runtime::Logger.debug("Logging into JIRA with username: #{username} and password:#{password}") - - fill_in 'login-form-username', with: username - fill_in 'login-form-password', with: password - click_on 'login-form-submit' - end - - def go_to_login_page - click_on 'log in' - end - - def login_if_required(username, password) - return unless login_required? - - go_to_login_page - login(username, password) - end - - def summary_field - page.find('#summary').value - end - - def issue_description - page.find('#description', visible: false).value - end - - def login_required? - login_required = page.has_text?('You are not logged in') - QA::Runtime::Logger.debug("login_required: #{login_required}") - login_required - end - end - end - end -end