Skip to content

Commit

Permalink
specs for ITR::Runner#start_coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
anmarchenko committed Mar 15, 2024
1 parent e887707 commit 4b29e46
Showing 1 changed file with 62 additions and 3 deletions.
65 changes: 62 additions & 3 deletions spec/datadog/ci/itr/runner_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@

RSpec.describe Datadog::CI::ITR::Runner do
let(:itr_enabled) { true }
let(:tracer_span) { Datadog::Tracing::SpanOperation.new("session") }
let(:test_session) { Datadog::CI::TestSession.new(tracer_span) }

subject(:runner) { described_class.new(enabled: itr_enabled) }

describe "#configure" do
let(:tracer_span) { Datadog::Tracing::SpanOperation.new("session") }
let(:test_session) { Datadog::CI::TestSession.new(tracer_span) }

before do
runner.configure(remote_configuration, test_session)
end
Expand Down Expand Up @@ -63,4 +62,64 @@
end
end
end

describe "#start_coverage" do
before do
runner.configure(remote_configuration, test_session)
end
context "when code coverage is disabled" do
let(:remote_configuration) { {"itr_enabled" => true, "code_coverage" => false, "tests_skipping" => false} }

it "does not start coverage" do
expect(runner).not_to receive(:coverage_collector)

runner.start_coverage
expect(runner.stop_coverage).to be_nil
end
end

context "when ITR is disabled" do
let(:remote_configuration) { {"itr_enabled" => false, "code_coverage" => false, "tests_skipping" => false} }

it "does not start coverage" do
expect(runner).not_to receive(:coverage_collector)

runner.start_coverage
expect(runner.stop_coverage).to be_nil
end
end

context "when code coverage is enabled" do
let(:remote_configuration) { {"itr_enabled" => true, "code_coverage" => true, "tests_skipping" => false} }

before do
skip("Code coverage is not supported in JRuby") if PlatformHelpers.jruby?
end

it "starts coverage" do
expect(runner).to receive(:coverage_collector).twice.and_call_original

runner.start_coverage
expect(1 + 1).to eq(2)
coverage = runner.stop_coverage
expect(coverage.size).to be > 0
end
end

context "when JRuby and code coverage is enabled" do
let(:remote_configuration) { {"itr_enabled" => true, "code_coverage" => true, "tests_skipping" => false} }

before do
skip("Skipped for CRuby") unless PlatformHelpers.jruby?
end

it "disables code coverage" do
expect(runner).not_to receive(:coverage_collector)
expect(runner.code_coverage?).to be(false)

runner.start_coverage
expect(runner.stop_coverage).to be_nil
end
end
end
end

0 comments on commit 4b29e46

Please sign in to comment.