summaryrefslogtreecommitdiff
path: root/qa/qa/vendor/jira/jira_issue_page.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/vendor/jira/jira_issue_page.rb')
-rw-r--r--qa/qa/vendor/jira/jira_issue_page.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/qa/qa/vendor/jira/jira_issue_page.rb b/qa/qa/vendor/jira/jira_issue_page.rb
new file mode 100644
index 00000000000..5f5449513ff
--- /dev/null
+++ b/qa/qa/vendor/jira/jira_issue_page.rb
@@ -0,0 +1,47 @@
+# 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