summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHomu <homu@barosl.com>2016-05-10 12:51:41 +0900
committerHomu <homu@barosl.com>2016-05-10 12:51:41 +0900
commitfb1dc9abee2273da37f59b5940bf5c3ebd97e917 (patch)
tree6320f2cb4cca4186dfea04d047ce5ae83feda2d6
parent10a225445d38b5eb3c0aa36446a5b67a209f4936 (diff)
parentc3594109aada6ada2b64d3bdbb69361bb4ec4ccc (diff)
downloadbundler-fb1dc9abee2273da37f59b5940bf5c3ebd97e917.tar.gz
Auto merge of #4463 - RochesterinNYC:add-quality-spec-for-debugging-mechanisms, r=segiddins
Create quality check spec for leftover debugging/development mechanisms Example mechanisms that are screened for: - `sleep` - `binding.pry` - `debugger` - focused `rspec` tests via `fit` - Related to discussion at https://github.com/bundler/bundler/pull/4439#issuecomment-210091297
-rw-r--r--spec/quality_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/quality_spec.rb b/spec/quality_spec.rb
index ce03839c17..043958a74d 100644
--- a/spec/quality_spec.rb
+++ b/spec/quality_spec.rb
@@ -18,6 +18,23 @@ describe "The library itself" do
"#{filename} uses inconsistent single quotes on lines #{failing_lines.join(", ")}"
end
+ def check_for_debugging_mechanisms(filename)
+ debugging_mechanisms_regex = /
+ (binding\.pry)|
+ (debugger)|
+ (sleep\s*\(?\d+)|
+ (fit\s*\(?("|\w))
+ /x
+
+ failing_lines = []
+ File.readlines(filename).each_with_index do |line, number|
+ failing_lines << number + 1 if line =~ debugging_mechanisms_regex
+ end
+
+ return if failing_lines.empty?
+ "#{filename} has debugging mechanisms (like binding.pry, sleep, debugger, rspec focusing, etc.) on lines #{failing_lines.join(", ")}"
+ end
+
def check_for_tab_characters(filename)
failing_lines = []
File.readlines(filename).each_with_index do |line, number|
@@ -97,6 +114,20 @@ describe "The library itself" do
expect(error_messages.compact).to be_well_formed
end
+ it "does not include any leftover debugging or development mechanisms" do
+ included = /spec/
+ exempt = /quality\_spec\.rb/
+ error_messages = []
+ Dir.chdir(File.expand_path("../", __FILE__)) do
+ `git ls-files -z`.split("\x0").each do |filename|
+ next unless filename =~ included
+ next if filename =~ exempt
+ error_messages << check_for_debugging_mechanisms(filename)
+ end
+ end
+ expect(error_messages.compact).to be_well_formed
+ end
+
it "maintains language quality of the documentation" do
included = /ronn/
error_messages = []