From 9851ba070e123f1bcb00e885a9177bfcd5e91096 Mon Sep 17 00:00:00 2001 From: Yuri Smirnov Date: Sat, 24 Apr 2021 14:24:11 +0300 Subject: [PATCH] add specs for method cov merging --- spec/result_merger_spec.rb | 67 ++++++++++++++++++++++++++++++++++++++ spec/source_file_spec.rb | 4 +-- 2 files changed, 69 insertions(+), 2 deletions(-) diff --git a/spec/result_merger_spec.rb b/spec/result_merger_spec.rb index ee2320cb..659caa08 100644 --- a/spec/result_merger_spec.rb +++ b/spec/result_merger_spec.rb @@ -165,6 +165,73 @@ expect_resultset_1_and_2_merged(result_hash) end end + + describe "method coverage" do + before do + SimpleCov.enable_coverage :method + store_result(result3, path: resultset3_path) + end + + after do + SimpleCov.clear_coverage_criteria + end + + let(:resultset1) do + { + source_fixture("methods.rb") => { + methods: { + ["A", :method1, 2, 2, 5, 5] => 1, + ["A", :method2, 9, 2, 11, 5] => 0, + ["A", :method3, 13, 2, 15, 5] => 0, + } + } + } + end + + let(:resultset2) do + { + source_fixture("methods.rb") => { + methods: { + ["A", :method1, 2, 2, 5, 5] => 0, + ["A", :method2, 9, 2, 11, 5] => 1, + ["A", :method3, 13, 2, 15, 5] => 0, + } + } + } + end + + let(:resultset3) do + { + source_fixture("methods.rb") => { + methods: { + ["B", :method1, 2, 2, 5, 5] => 1, + ["B", :method2, 9, 2, 11, 5] => 0, + ["B", :method3, 13, 2, 15, 5] => 0, + } + } + } + end + + let(:result3) { SimpleCov::Result.new(resultset3, command_name: "result3") } + let(:resultset3_path) { "#{resultset_prefix}3.json" } + + it "correctly merges the 3 results" do + result = SimpleCov::ResultMerger.merge_and_store( + resultset1_path, resultset2_path, resultset3_path + ) + + merged_coverage = result.original_result.fetch(source_fixture("methods.rb")) + + expect(merged_coverage.fetch(:methods)).to eq( + ["A", :method1, 2, 2, 5, 5] => 1, + ["A", :method2, 9, 2, 11, 5] => 1, + ["A", :method3, 13, 2, 15, 5] => 0, + ["B", :method1, 2, 2, 5, 5] => 1, + ["B", :method2, 9, 2, 11, 5] => 0, + ["B", :method3, 13, 2, 15, 5] => 0 + ) + end + end end context "pre 0.18 result format" do diff --git a/spec/source_file_spec.rb b/spec/source_file_spec.rb index 1aa30561..43609c77 100644 --- a/spec/source_file_spec.rb +++ b/spec/source_file_spec.rb @@ -189,9 +189,9 @@ lines: [1, 1, 1, 1, nil, nil, 1, nil, 1, 1, nil, nil, 1, 0, nil, nil, nil, 1], branches: {}, methods: { - ["A", :method3, 13, 2, 15, 5] => 0, + ["A", :method1, 2, 2, 5, 5] => 1, ["A", :method2, 9, 2, 11, 5] => 1, - ["A", :method1, 2, 2, 5, 5] => 1 + ["A", :method3, 13, 2, 15, 5] => 0 } } end