diff options
author | Homu <homu@barosl.com> | 2016-05-10 12:51:41 +0900 |
---|---|---|
committer | Homu <homu@barosl.com> | 2016-05-10 12:51:41 +0900 |
commit | fb1dc9abee2273da37f59b5940bf5c3ebd97e917 (patch) | |
tree | 6320f2cb4cca4186dfea04d047ce5ae83feda2d6 | |
parent | 10a225445d38b5eb3c0aa36446a5b67a209f4936 (diff) | |
parent | c3594109aada6ada2b64d3bdbb69361bb4ec4ccc (diff) | |
download | bundler-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.rb | 31 |
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 = [] |