|
39 | 39 |
|
40 | 40 | context 'which is installed via Puppet' do
|
41 | 41 | let(:extract_path) { Dir.mktmpdir }
|
42 |
| - let(:extracted_module_path) { File.join(extract_path, Dir.entries(extract_path).reject { |p| %w[. ..].include?(p) }.first) } |
| 42 | + let(:extracted_module_path) { Dir[File.join(extract_path, '*')].first } |
43 | 43 |
|
44 | 44 | RSpec::Matchers.define :be_an_empty_glob do
|
45 | 45 | match do |actual|
|
46 |
| - Dir.glob(extracted_module_path + actual).empty? |
| 46 | + @extracted = Dir.glob(actual, base: extracted_module_path) |
| 47 | + @extracted.empty? |
47 | 48 | end
|
48 | 49 |
|
49 | 50 | failure_message do |actual|
|
50 |
| - "expected that #{actual} would be empty but got #{Dir.glob(extracted_module_path + actual)}" |
| 51 | + "expected that #{actual} would be empty but got #{@extracted}" |
51 | 52 | end
|
52 | 53 | end
|
53 | 54 |
|
54 |
| - RSpec::Matchers.define :be_identical_as_soource do |
| 55 | + RSpec::Matchers.define :be_identical_as_source do |
55 | 56 | match do |actual|
|
56 |
| - # Dir.glob(..., base: xxx) does not work, so need to use a crude method to get the relative directory path |
57 |
| - @source = Dir.glob(module_source + actual).map { |p| p.slice(module_source.length..-1) } |
58 |
| - @extracted = Dir.glob(extracted_module_path + actual).map { |p| p.slice(extracted_module_path.length..-1) } |
| 57 | + @source = Dir.glob(actual, base: module_source) |
| 58 | + @extracted = Dir.glob(actual, base: extracted_module_path) |
59 | 59 |
|
60 | 60 | @source == @extracted
|
61 | 61 | end
|
|
83 | 83 |
|
84 | 84 | it 'expands the expected paths' do # This is expected
|
85 | 85 | # No development directories
|
86 |
| - expect('/spec/*').to be_an_empty_glob |
87 |
| - expect('/.vscode/*').to be_an_empty_glob |
88 |
| - expect('/tmp/*').to be_an_empty_glob |
| 86 | + expect('spec/*').to be_an_empty_glob |
| 87 | + expect('.vscode/*').to be_an_empty_glob |
| 88 | + expect('tmp/*').to be_an_empty_glob |
89 | 89 | # No development files
|
90 |
| - expect('/.fixtures').to be_an_empty_glob |
91 |
| - expect('/.gitignore').to be_an_empty_glob |
92 |
| - expect('/Rakefile').to be_an_empty_glob |
| 90 | + expect('.fixtures').to be_an_empty_glob |
| 91 | + expect('.gitignore').to be_an_empty_glob |
| 92 | + expect('Rakefile').to be_an_empty_glob |
93 | 93 | # No CI files
|
94 |
| - expect('/.travis.yml').to be_an_empty_glob |
95 |
| - expect('/appveyor.yml').to be_an_empty_glob |
| 94 | + expect('.travis.yml').to be_an_empty_glob |
| 95 | + expect('appveyor.yml').to be_an_empty_glob |
96 | 96 |
|
97 | 97 | # Important Extracted files
|
98 |
| - expect('/manifests/*').to be_identical_as_soource |
99 |
| - expect('/templates/*').to be_identical_as_soource |
100 |
| - expect('/lib/*').to be_identical_as_soource |
| 98 | + expect('manifests/*').to be_identical_as_source |
| 99 | + expect('templates/*').to be_identical_as_source |
| 100 | + expect('lib/*').to be_identical_as_source |
101 | 101 | end
|
102 | 102 | end
|
103 | 103 | end
|
|
0 commit comments