summaryrefslogtreecommitdiff
path: root/spec/quality_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/quality_spec.rb')
-rw-r--r--spec/quality_spec.rb54
1 files changed, 15 insertions, 39 deletions
diff --git a/spec/quality_spec.rb b/spec/quality_spec.rb
index 7cd04fdc75..09e59d88ae 100644
--- a/spec/quality_spec.rb
+++ b/spec/quality_spec.rb
@@ -108,8 +108,7 @@ RSpec.describe "The library itself" do
exempt = /\.gitmodules|fixtures|vendor|LICENSE|vcr_cassettes|rbreadline\.diff|\.txt$/
error_messages = []
Dir.chdir(root) do
- files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
- files.split("\x0").each do |filename|
+ tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
error_messages << check_for_tab_characters(filename)
error_messages << check_for_extra_spaces(filename)
@@ -122,8 +121,7 @@ RSpec.describe "The library itself" do
exempt = /vendor|vcr_cassettes|LICENSE|rbreadline\.diff/
error_messages = []
Dir.chdir(root) do
- files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
- files.split("\x0").each do |filename|
+ tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
error_messages << check_for_straneous_quotes(filename)
end
@@ -135,8 +133,7 @@ RSpec.describe "The library itself" do
exempt = %r{quality_spec.rb|support/helpers|vcr_cassettes|\.md|\.ronn|\.txt|\.5|\.1}
error_messages = []
Dir.chdir(root) do
- files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
- files.split("\x0").each do |filename|
+ tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
error_messages << check_for_debugging_mechanisms(filename)
end
@@ -148,8 +145,7 @@ RSpec.describe "The library itself" do
error_messages = []
exempt = %r{lock/lockfile_spec|quality_spec|vcr_cassettes|\.ronn|lockfile_parser\.rb}
Dir.chdir(root) do
- files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
- files.split("\x0").each do |filename|
+ tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
error_messages << check_for_git_merge_conflicts(filename)
end
@@ -174,8 +170,7 @@ RSpec.describe "The library itself" do
error_messages = []
exempt = /vendor|vcr_cassettes/
Dir.chdir(root) do
- lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib`
- lib_files.split("\x0").each do |filename|
+ lib_tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
error_messages << check_for_expendable_words(filename)
error_messages << check_for_specific_pronouns(filename)
@@ -204,8 +199,7 @@ RSpec.describe "The library itself" do
Dir.chdir(root) do
key_pattern = /([a-z\._-]+)/i
- lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib`
- lib_files.split("\x0").each do |filename|
+ lib_tracked_files.split("\x0").each do |filename|
each_line(filename) do |line, number|
line.scan(/Bundler\.settings\[:#{key_pattern}\]/).flatten.each {|s| all_settings[s] << "referenced at `#{filename}:#{number.succ}`" }
end
@@ -231,30 +225,14 @@ RSpec.describe "The library itself" do
end
it "can still be built" do
- Dir.chdir(root) do
- begin
- if ruby_core?
- spec = Gem::Specification.load(gemspec.to_s)
- spec.bindir = "libexec"
- File.open(root.join("bundler.gemspec").to_s, "w") {|f| f.write spec.to_ruby }
- gem_command! :build, root.join("bundler.gemspec").to_s
- FileUtils.rm(root.join("bundler.gemspec").to_s)
- else
- gem_command! :build, gemspec
- end
-
- expect(err).to be_empty, "bundler should build as a gem without warnings, but\n#{err}"
- ensure
- # clean up the .gem generated
- FileUtils.rm("bundler-#{Bundler::VERSION}.gem")
- end
+ with_built_bundler do |_gem_path|
+ expect(err).to be_empty, "bundler should build as a gem without warnings, but\n#{err}"
end
end
- it "ships the correct set of files", :ruby_repo do
+ it "ships the correct set of files" do
Dir.chdir(root) do
- git_list = IO.popen("git ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|man|exe)/}) }
- git_list += %w[CHANGELOG.md LICENSE.md README.md bundler.gemspec]
+ git_list = shipped_files.split("\x0")
gem_list = Gem::Specification.load(gemspec.to_s).files
@@ -271,12 +249,11 @@ RSpec.describe "The library itself" do
lib/bundler/vlad.rb
lib/bundler/templates/gems.rb
]
- lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib`
- lib_files = lib_files.split("\x0").grep(/\.rb$/) - exclusions
- lib_files.reject! {|f| f.start_with?("lib/bundler/vendor") }
- lib_files.map! {|f| f.chomp(".rb") }
+ files_to_require = lib_tracked_files.split("\x0").grep(/\.rb$/) - exclusions
+ files_to_require.reject! {|f| f.start_with?("lib/bundler/vendor") }
+ files_to_require.map! {|f| f.chomp(".rb") }
sys_exec!("ruby -w -Ilib") do |input, _, _|
- lib_files.each do |f|
+ files_to_require.each do |f|
input.puts "require '#{f.sub(%r{\Alib/}, "")}'"
end
end
@@ -293,8 +270,7 @@ RSpec.describe "The library itself" do
Dir.chdir(root) do
exempt = %r{templates/|vendor/}
all_bad_requires = []
- lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib`
- lib_files.split("\x0").each do |filename|
+ lib_tracked_files.split("\x0").each do |filename|
next if filename =~ exempt
each_line(filename) do |line, number|
line.scan(/^ *require "bundler/).each { all_bad_requires << "#{filename}:#{number.succ}" }