Roland Walker
11 years ago
1 changed files with 74 additions and 0 deletions
@ -0,0 +1,74 @@ |
|||||
|
require 'test_helper' |
||||
|
|
||||
|
describe "Repo layout" do |
||||
|
project_root = Pathname.new(File.expand_path("#{File.dirname(__FILE__)}/../")) |
||||
|
|
||||
|
# todo: a more clever way to do this would be to dispense with |
||||
|
# the imperfect IGNORE lists and read the actual repo |
||||
|
# contents by reading the output of "git ls-files" |
||||
|
|
||||
|
# dot dirs are always a project of Dir.entries |
||||
|
# other files are items that the developer hopefully has gitignored |
||||
|
IGNORE_FILES = %w{ |
||||
|
. |
||||
|
.. |
||||
|
.DS_Store |
||||
|
.bundle |
||||
|
} |
||||
|
|
||||
|
# the developer has hopefully gitignored these |
||||
|
IGNORE_REGEXPS = [ |
||||
|
%r{~$}, # emacs |
||||
|
] |
||||
|
|
||||
|
TOPLEVEL_DIRS = %w{ |
||||
|
.git |
||||
|
Casks |
||||
|
developer |
||||
|
spec |
||||
|
test |
||||
|
} |
||||
|
|
||||
|
TOPLEVEL_FILES = %w{ |
||||
|
.gitignore |
||||
|
.rspec |
||||
|
.travis.yml |
||||
|
CONTRIBUTING.md |
||||
|
Gemfile |
||||
|
Gemfile.lock |
||||
|
LICENSE |
||||
|
README.md |
||||
|
Rakefile |
||||
|
} |
||||
|
|
||||
|
describe "toplevel dir" do |
||||
|
it "finds some files at the top level" do |
||||
|
entries = Dir.entries(project_root) |
||||
|
entries.length.must_be :>, 0 |
||||
|
end |
||||
|
|
||||
|
it "only finds expected files at the top level" do |
||||
|
entries = Dir.entries(project_root) - IGNORE_FILES - TOPLEVEL_DIRS - TOPLEVEL_FILES |
||||
|
IGNORE_REGEXPS.each do |regexp| |
||||
|
entries.reject! { |elt| elt.match(regexp) } |
||||
|
end |
||||
|
entries.must_equal [] |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
describe "Casks dir" do |
||||
|
it "finds some files in the Casks dir" do |
||||
|
entries = Dir.entries(project_root.join('Casks')) |
||||
|
entries.length.must_be :>, 0 |
||||
|
end |
||||
|
|
||||
|
it "only finds .rb files in the Casks dir" do |
||||
|
entries = Dir.entries(project_root.join('Casks')) - IGNORE_FILES |
||||
|
IGNORE_REGEXPS.each do |regexp| |
||||
|
entries.reject! { |elt| elt.match(regexp) } |
||||
|
end |
||||
|
entries.reject! { |elt| elt.match(%r{\.rb$}) } |
||||
|
entries.must_equal [] |
||||
|
end |
||||
|
end |
||||
|
end |
Loading…
Reference in new issue