Sha256: 9b2160e53aa8287bff181aaeb37b7cbf210823ebe7fac30052841df12fb33a6a

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 KB

Contents

# frozen_string_literal: true

require_relative "../../../ext/test"
require_relative "../ext"

module Datadog
  module CI
    module Contrib
      module RSpec
        module KnapsackPro
          module Runner
            def self.included(base)
              base.prepend(InstanceMethods)
            end

            module InstanceMethods
              def knapsack__run_specs(*args)
                return super if ::RSpec.configuration.dry_run?
                return super unless datadog_configuration[:enabled]

                test_session = test_visibility_component.start_test_session(
                  tags: {
                    CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK,
                    CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::RSpec::Integration.version.to_s
                  },
                  service: datadog_configuration[:service_name]
                )

                test_module = test_visibility_component.start_test_module(Ext::FRAMEWORK)

                result = super
                return result unless test_module && test_session

                if result != 0
                  test_module.failed!
                  test_session.failed!
                else
                  test_module.passed!
                  test_session.passed!
                end
                test_module.finish
                test_session.finish

                result
              end

              private

              def datadog_configuration
                Datadog.configuration.ci[:rspec]
              end

              def test_visibility_component
                Datadog.send(:components).test_visibility
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
datadog-ci-1.7.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.6.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.5.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.4.1 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.4.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.3.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb