-
-
Notifications
You must be signed in to change notification settings - Fork 231
Expand file tree
/
Copy pathadvisories_spec.rb
More file actions
43 lines (34 loc) · 1.28 KB
/
advisories_spec.rb
File metadata and controls
43 lines (34 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require 'spec_helper'
require 'gem_advisory_example'
require 'ruby_advisory_example'
require 'advisory_dir_example'
describe "gems" do
Dir.glob(File.join(ROOT,'gems/*/*')) do |path|
include_examples 'Gem Advisory', path
end
Dir.glob(File.join(File.dirname(__FILE__), '../gems/*')) do |dir|
include_examples 'Advisory Directory', dir
end
let(:dir) { File.join(ROOT,'gems') }
let(:advisory_dirs) { Dir.glob('*', base: dir) }
it "must not have any case-insensitive conflicting directory names" do
case_sensitive_dirs = advisory_dirs.grep(/[A-Z]/)
case_insensitive_mapping = case_sensitive_dirs.to_h { |dir|
[dir, dir.downcase]
}
conflicting_dirs = case_insensitive_mapping.select { |dir,lowercase_dir|
advisory_dirs.include?(lowercase_dir)
}
expect(conflicting_dirs).to be_empty, -> {
"#{conflicting_dirs.keys.join(', ')} conflicts with #{conflicting_dirs.values.join(', ')}"
}
end
end
describe "rubies" do
Dir.glob(File.join(ROOT, 'rubies/*/*')) do |path|
include_examples 'Rubies Advisory', path
end
Dir.glob(File.join(File.dirname(__FILE__), '../rubies/*')) do |dir|
include_examples 'Advisory Directory', dir
end
end