|  | 
| 165 | 165 |           expect_resultset_1_and_2_merged(result_hash) | 
| 166 | 166 |         end | 
| 167 | 167 |       end | 
|  | 168 | + | 
|  | 169 | +      describe "method coverage" do | 
|  | 170 | +        before do | 
|  | 171 | +          SimpleCov.enable_coverage :method | 
|  | 172 | +          store_result(result3, path: resultset3_path) | 
|  | 173 | +        end | 
|  | 174 | + | 
|  | 175 | +        after do | 
|  | 176 | +          SimpleCov.clear_coverage_criteria | 
|  | 177 | +        end | 
|  | 178 | + | 
|  | 179 | +        let(:resultset1) do | 
|  | 180 | +          { | 
|  | 181 | +            source_fixture("methods.rb") => { | 
|  | 182 | +              methods: { | 
|  | 183 | +                ["A", :method1, 2, 2, 5, 5] => 1, | 
|  | 184 | +                ["A", :method2, 9, 2, 11, 5] => 0, | 
|  | 185 | +                ["A", :method3, 13, 2, 15, 5] => 0, | 
|  | 186 | +              } | 
|  | 187 | +            } | 
|  | 188 | +          } | 
|  | 189 | +        end | 
|  | 190 | + | 
|  | 191 | +        let(:resultset2) do | 
|  | 192 | +          { | 
|  | 193 | +            source_fixture("methods.rb") => { | 
|  | 194 | +              methods: { | 
|  | 195 | +                ["A", :method1, 2, 2, 5, 5] => 0, | 
|  | 196 | +                ["A", :method2, 9, 2, 11, 5] => 1, | 
|  | 197 | +                ["A", :method3, 13, 2, 15, 5] => 0, | 
|  | 198 | +              } | 
|  | 199 | +            } | 
|  | 200 | +          } | 
|  | 201 | +        end | 
|  | 202 | + | 
|  | 203 | +        let(:resultset3) do | 
|  | 204 | +          { | 
|  | 205 | +            source_fixture("methods.rb") => { | 
|  | 206 | +              methods: { | 
|  | 207 | +                ["B", :method1, 2, 2, 5, 5] => 1, | 
|  | 208 | +                ["B", :method2, 9, 2, 11, 5] => 0, | 
|  | 209 | +                ["B", :method3, 13, 2, 15, 5] => 0, | 
|  | 210 | +              } | 
|  | 211 | +            } | 
|  | 212 | +          } | 
|  | 213 | +        end | 
|  | 214 | + | 
|  | 215 | +        let(:result3) { SimpleCov::Result.new(resultset3, command_name: "result3") } | 
|  | 216 | +        let(:resultset3_path) { "#{resultset_prefix}3.json" } | 
|  | 217 | + | 
|  | 218 | +        it "correctly merges the 3 results" do | 
|  | 219 | +          result = SimpleCov::ResultMerger.merge_and_store( | 
|  | 220 | +            resultset1_path, resultset2_path, resultset3_path | 
|  | 221 | +          ) | 
|  | 222 | + | 
|  | 223 | +          merged_coverage = result.original_result.fetch(source_fixture("methods.rb")) | 
|  | 224 | + | 
|  | 225 | +          expect(merged_coverage.fetch(:methods)).to eq( | 
|  | 226 | +            ["A", :method1, 2, 2, 5, 5] => 1, | 
|  | 227 | +            ["A", :method2, 9, 2, 11, 5] => 1, | 
|  | 228 | +            ["A", :method3, 13, 2, 15, 5] => 0, | 
|  | 229 | +            ["B", :method1, 2, 2, 5, 5] => 1, | 
|  | 230 | +            ["B", :method2, 9, 2, 11, 5] => 0, | 
|  | 231 | +            ["B", :method3, 13, 2, 15, 5] => 0 | 
|  | 232 | +          ) | 
|  | 233 | +        end | 
|  | 234 | +      end | 
| 168 | 235 |     end | 
| 169 | 236 | 
 | 
| 170 | 237 |     context "pre 0.18 result format" do | 
|  | 
0 commit comments