summaryrefslogtreecommitdiff
path: root/qa/qa/runtime
diff options
context:
space:
mode:
authorMark Lapierre <mlapierre@gitlab.com>2018-10-02 14:31:39 -0400
committerMark Lapierre <mlapierre@gitlab.com>2018-10-19 18:32:33 -0400
commit45860bc807b693d4b7bc9797c37a6337a19c63c4 (patch)
tree829e109d602f4af32548cca349953cbaf3e3778c /qa/qa/runtime
parenta310a638db037d3914cf12e580c7a41209d2d06e (diff)
downloadgitlab-ce-45860bc807b693d4b7bc9797c37a6337a19c63c4.tar.gz
Log page actionsml-qa-logging
Override page object methods to log the actions taken by the methods before or after the action, as appropriate. Allow page object action logging to be turned on via a QA_DEBUG env var. Unlike CHROME_HEADLESS (and the soon to arrive VERBOSE), QA_DEBUG is false by default. QA_DEBUG is used instead of just DEBUG because that enables Selenium debug logging. Mask passwords entered into fields with a QA selector with 'password' in the name. Doesn't mask sensitive data entered into any other field.
Diffstat (limited to 'qa/qa/runtime')
-rw-r--r--qa/qa/runtime/env.rb10
-rw-r--r--qa/qa/runtime/logger.rb23
2 files changed, 31 insertions, 2 deletions
diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb
index 533ed87453a..c7052a9f300 100644
--- a/qa/qa/runtime/env.rb
+++ b/qa/qa/runtime/env.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module QA
module Runtime
module Env
@@ -5,8 +7,12 @@ module QA
attr_writer :personal_access_token
- def verbose?
- enabled?(ENV['VERBOSE'], default: false)
+ def debug?
+ enabled?(ENV['QA_DEBUG'], default: false)
+ end
+
+ def log_destination
+ ENV['QA_LOG_PATH'] || $stdout
end
# set to 'false' to have Chrome run visibly instead of headless
diff --git a/qa/qa/runtime/logger.rb b/qa/qa/runtime/logger.rb
new file mode 100644
index 00000000000..3baa24de0ec
--- /dev/null
+++ b/qa/qa/runtime/logger.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+require 'logger'
+
+module QA
+ module Runtime
+ module Logger
+ extend SingleForwardable
+
+ def_delegators :logger, :debug, :info, :error, :warn, :fatal, :unknown
+
+ singleton_class.module_eval do
+ def logger
+ return @logger if @logger
+
+ @logger = ::Logger.new Runtime::Env.log_destination
+ @logger.level = ::Logger::DEBUG
+ @logger
+ end
+ end
+ end
+ end
+end