From 175fbb8ba68f758349d5bb75c219d88eff633dee Mon Sep 17 00:00:00 2001 From: Diego Camargo Date: Sun, 28 Jul 2019 15:14:31 -0500 Subject: [PATCH] Warn the user if the minimum coverage is set greater than 100 (#737) * Warn the user if the minimum coverage that is being set is greater than 100 --- CHANGELOG.md | 7 +++++++ lib/simplecov/configuration.rb | 6 ++++++ spec/configuration_spec.rb | 24 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66b5bdd5..56ad40b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Unrealeased +=================== + +## Enhancements + +* If the minimum coverage is set to be greater than 100, a warning will be shown. See [#737](https://github.com/colszowka/simplecov/pull/737) + 0.17.0 (2019-07-02) =================== diff --git a/lib/simplecov/configuration.rb b/lib/simplecov/configuration.rb index a5e0253e..2cc48bd6 100644 --- a/lib/simplecov/configuration.rb +++ b/lib/simplecov/configuration.rb @@ -224,6 +224,7 @@ def merge_timeout(seconds = nil) # Default is 0% (disabled) # def minimum_coverage(coverage = nil) + minimum_possible_coverage_exceeded("minimum_coverage") if coverage && coverage > 100 @minimum_coverage ||= (coverage || 0).to_f.round(2) end @@ -245,6 +246,7 @@ def maximum_coverage_drop(coverage_drop = nil) # Default is 0% (disabled) # def minimum_coverage_by_file(coverage = nil) + minimum_possible_coverage_exceeded("minimum_coverage_by_file") if coverage && coverage > 100 @minimum_coverage_by_file ||= (coverage || 0).to_f.round(2) end @@ -288,6 +290,10 @@ def add_group(group_name, filter_argument = nil, &filter_proc) private + def minimum_possible_coverage_exceeded(coverage_option) + warn "The coverage you set for #{coverage_option} is greater than 100%" + end + # # The actual filter processor. Not meant for direct use # diff --git a/spec/configuration_spec.rb b/spec/configuration_spec.rb index 1225e0bb..bc9f8ca0 100644 --- a/spec/configuration_spec.rb +++ b/spec/configuration_spec.rb @@ -33,5 +33,29 @@ expect(config.tracked_files).to be_nil end end + + describe "#minimum_coverage" do + it "does not warn you about your usage" do + expect(config).not_to receive(:warn) + config.minimum_coverage(100.00) + end + + it "warns you about your usage" do + expect(config).to receive(:warn).with("The coverage you set for minimum_coverage is greater than 100%") + config.minimum_coverage(100.01) + end + end + + describe "minimum_coverage_by_file" do + it "does not warn you about your usage" do + expect(config).not_to receive(:warn) + config.minimum_coverage_by_file(100.00) + end + + it "warns you about your usage" do + expect(config).to receive(:warn).with("The coverage you set for minimum_coverage_by_file is greater than 100%") + config.minimum_coverage_by_file(100.01) + end + end end end