Sha256: 4ca94f05865b358e9364942ee16eb16b48583bf291cc5a3109eb785ea760a77a

Contents?: true

Size: 1.61 KB

Versions: 13

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true

require "datadog/tracing/contrib/patcher"

require_relative "ext"
require_relative "../../ext/test"
require_relative "../../utils/parsing"

module Datadog
  module CI
    module Contrib
      module Selenium
        # Provides functionality to interact with Datadog Real User Monitoring product
        # via executing JavaScript code in the browser.
        #
        # Relevant docs: https://docs.datadoghq.com/real_user_monitoring/browser/
        module RUM
          def self.is_rum_active?(script_executor)
            is_rum_active_script_result = script_executor.execute_script(Ext::SCRIPT_IS_RUM_ACTIVE)
            Datadog.logger.debug { "[Selenium] SCRIPT_IS_RUM_ACTIVE result is #{is_rum_active_script_result.inspect}" }
            Utils::Parsing.convert_to_bool(is_rum_active_script_result)
          end

          def self.stop_rum_session(script_executor)
            config = Datadog.configuration.ci[:selenium]
            if is_rum_active?(script_executor)
              Datadog::CI.active_test&.set_tag(
                CI::Ext::Test::TAG_IS_RUM_ACTIVE,
                "true"
              )

              result = script_executor.execute_script(Ext::SCRIPT_STOP_RUM_SESSION)
              Datadog.logger.debug { "[Selenium] SCRIPT_STOP_RUM_SESSION result is #{result.inspect}" }

              # introduce a delay to allow the RUM session to be stopped
              delay = config[:rum_flush_wait_millis] / 1000.0
              Datadog.logger.debug { "[Selenium] Waiting for #{delay} seconds" }
              sleep(delay)
            end
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
datadog-ci-1.8.1 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.8.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.7.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.6.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.5.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.4.1 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.4.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.3.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.2.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.1.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.0.1 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.0.0 lib/datadog/ci/contrib/selenium/rum.rb
datadog-ci-1.0.0.beta6 lib/datadog/ci/contrib/selenium/rum.rb