|
4 | 4 |
|
5 | 5 | describe SimpleCov::Combine::ResultsCombiner do |
6 | 6 | describe "with two faked coverage resultsets" do |
7 | | - let(:resultset1) do |
| 7 | + let(:first_resultset) do |
8 | 8 | { |
9 | 9 | source_fixture("sample.rb") => { |
10 | 10 | "lines" => [nil, 1, 1, 1, nil, nil, 1, 1, nil, nil], |
|
22 | 22 | } |
23 | 23 | end |
24 | 24 |
|
25 | | - let(:resultset2) do |
| 25 | + let(:second_resultset) do |
26 | 26 | { |
27 | 27 | source_fixture("sample.rb") => {"lines" => [1, nil, 1, 1, nil, nil, 1, 1, nil, nil]}, |
28 | 28 | source_fixture("app/models/user.rb") => { |
|
37 | 37 | } |
38 | 38 | end |
39 | 39 |
|
40 | | - let(:resultset3) do |
| 40 | + let(:third_resultset) do |
41 | 41 | {source_fixture("three.rb") => {"lines" => [nil, 1, 2]}} |
42 | 42 | end |
43 | 43 |
|
|
49 | 49 | SimpleCov.enable_coverage :branch |
50 | 50 | end |
51 | 51 |
|
52 | | - context "a merge" do |
53 | | - subject do |
54 | | - SimpleCov::Combine::ResultsCombiner.combine(resultset1, resultset2, resultset3) |
| 52 | + context "when a merge" do |
| 53 | + subject(:combined) do |
| 54 | + described_class.combine(first_resultset, second_resultset, third_resultset) |
55 | 55 | end |
56 | 56 |
|
57 | 57 | it "has proper results for sample.rb" do |
58 | | - expect(subject[source_fixture("sample.rb")]["lines"]).to eq([1, 1, 2, 2, nil, nil, 2, 2, nil, nil]) |
| 58 | + expect(combined[source_fixture("sample.rb")]["lines"]).to eq([1, 1, 2, 2, nil, nil, 2, 2, nil, nil]) |
59 | 59 |
|
60 | 60 | # gotta configure max line so it doesn't get ridiculous |
61 | 61 | # rubocop:disable Style/IfUnlessModifier |
62 | 62 | if SimpleCov.branch_coverage_supported? |
63 | | - expect(subject[source_fixture("sample.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:then, 4, 8, 6, 8, 12]]).to eq(47) |
| 63 | + expect(combined[source_fixture("sample.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:then, 4, 8, 6, 8, 12]]).to eq(47) |
64 | 64 | end |
65 | 65 | # rubocop:enable Style/IfUnlessModifier |
66 | 66 | end |
67 | 67 |
|
68 | 68 | it "has proper results for user.rb" do |
69 | | - expect(subject[source_fixture("app/models/user.rb")]["lines"]).to eq([nil, 2, 6, 2, nil, nil, 2, 0, nil, nil]) |
| 69 | + expect(combined[source_fixture("app/models/user.rb")]["lines"]).to eq([nil, 2, 6, 2, nil, nil, 2, 0, nil, nil]) |
70 | 70 |
|
71 | 71 | if SimpleCov.branch_coverage_supported? |
72 | | - expect(subject[source_fixture("app/models/user.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:then, 4, 8, 6, 8, 12]]).to eq(48) |
73 | | - expect(subject[source_fixture("app/models/user.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:else, 5, 8, 6, 8, 36]]).to eq(26) |
| 72 | + expect(combined[source_fixture("app/models/user.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:then, 4, 8, 6, 8, 12]]).to eq(48) |
| 73 | + expect(combined[source_fixture("app/models/user.rb")]["branches"][[:if, 3, 8, 6, 8, 36]][[:else, 5, 8, 6, 8, 36]]).to eq(26) |
74 | 74 | end |
75 | 75 | end |
76 | 76 |
|
77 | 77 | it "has proper results for sample_controller.rb" do |
78 | | - expect(subject[source_fixture("app/controllers/sample_controller.rb")]["lines"]).to eq([nil, 4, 2, 1, nil, nil, 2, 0, nil, nil]) |
| 78 | + expect(combined[source_fixture("app/controllers/sample_controller.rb")]["lines"]).to eq([nil, 4, 2, 1, nil, nil, 2, 0, nil, nil]) |
79 | 79 | end |
80 | 80 |
|
81 | 81 | it "has proper results for resultset1.rb" do |
82 | | - expect(subject[source_fixture("resultset1.rb")]["lines"]).to eq([1, 1, 1, 1]) |
| 82 | + expect(combined[source_fixture("resultset1.rb")]["lines"]).to eq([1, 1, 1, 1]) |
83 | 83 | end |
84 | 84 |
|
85 | 85 | it "has proper results for resultset2.rb" do |
86 | | - expect(subject[source_fixture("resultset2.rb")]["lines"]).to eq([nil, 1, 1, nil]) |
| 86 | + expect(combined[source_fixture("resultset2.rb")]["lines"]).to eq([nil, 1, 1, nil]) |
87 | 87 | end |
88 | 88 |
|
89 | 89 | it "has proper results for parallel_tests.rb" do |
90 | | - expect(subject[source_fixture("parallel_tests.rb")]["lines"]).to eq([nil, nil, nil, 0]) |
| 90 | + expect(combined[source_fixture("parallel_tests.rb")]["lines"]).to eq([nil, nil, nil, 0]) |
91 | 91 | end |
92 | 92 |
|
93 | 93 | it "has proper results for conditionally_loaded_1.rb" do |
94 | | - expect(subject[source_fixture("conditionally_loaded_1.rb")]["lines"]).to eq([nil, 0, 1]) |
| 94 | + expect(combined[source_fixture("conditionally_loaded_1.rb")]["lines"]).to eq([nil, 0, 1]) |
95 | 95 | end |
96 | 96 |
|
97 | 97 | it "has proper results for conditionally_loaded_2.rb" do |
98 | | - expect(subject[source_fixture("conditionally_loaded_2.rb")]["lines"]).to eq([nil, 0, 1]) |
| 98 | + expect(combined[source_fixture("conditionally_loaded_2.rb")]["lines"]).to eq([nil, 0, 1]) |
99 | 99 | end |
100 | 100 |
|
101 | 101 | it "has proper results for three.rb" do |
102 | | - expect(subject[source_fixture("three.rb")]["lines"]).to eq([nil, 3, 7]) |
| 102 | + expect(combined[source_fixture("three.rb")]["lines"]).to eq([nil, 3, 7]) |
103 | 103 | end |
104 | 104 |
|
105 | 105 | it "always returns a Hash object for branches", if: SimpleCov.branch_coverage_supported? do |
106 | | - expect(subject[source_fixture("three.rb")]["branches"]).to eq({}) |
| 106 | + expect(combined[source_fixture("three.rb")]["branches"]).to eq({}) |
107 | 107 | end |
108 | 108 | end |
109 | 109 | end |
|
136 | 136 | end |
137 | 137 |
|
138 | 138 | it "merges frozen resultsets" do |
139 | | - resultset1 = { |
| 139 | + first_resultset = { |
140 | 140 | source_fixture("sample.rb").freeze => {"lines" => [nil, 1, 1, 1, nil, nil, 1, 1, nil, nil]}, |
141 | 141 | source_fixture("app/models/user.rb").freeze => {"lines" => [nil, 1, 1, 1, nil, nil, 1, 0, nil, nil]} |
142 | 142 | } |
143 | 143 |
|
144 | | - resultset2 = { |
| 144 | + second_resultset = { |
145 | 145 | source_fixture("sample.rb").freeze => {"lines" => [1, nil, 1, 1, nil, nil, 1, 1, nil, nil]} |
146 | 146 | } |
147 | 147 |
|
148 | | - merged_result = SimpleCov::Combine::ResultsCombiner.combine(resultset1, resultset2) |
149 | | - expect(merged_result.keys).to eq(resultset1.keys) |
| 148 | + merged_result = described_class.combine(first_resultset, second_resultset) |
| 149 | + expect(merged_result.keys).to eq(first_resultset.keys) |
150 | 150 | expect(merged_result.values.map(&:frozen?)).to eq([false, false]) |
151 | 151 |
|
152 | 152 | expect(merged_result[source_fixture("sample.rb")]["lines"]).to eq([1, 1, 2, 2, nil, nil, 2, 2, nil, nil]) |
|
0 commit comments