diff options
author | Mark Lapierre <mlapierre@gitlab.com> | 2018-10-02 14:31:39 -0400 |
---|---|---|
committer | Mark Lapierre <mlapierre@gitlab.com> | 2018-10-19 18:32:33 -0400 |
commit | 45860bc807b693d4b7bc9797c37a6337a19c63c4 (patch) | |
tree | 829e109d602f4af32548cca349953cbaf3e3778c /qa/qa/runtime | |
parent | a310a638db037d3914cf12e580c7a41209d2d06e (diff) | |
download | gitlab-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.rb | 10 | ||||
-rw-r--r-- | qa/qa/runtime/logger.rb | 23 |
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 |