File tree 2 files changed +36
-0
lines changed
2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 1
1
load File . join ( File . dirname ( __FILE__ ) , 'spec_helper.rb' )
2
2
require 'gem_advisory_example'
3
3
require 'ruby_advisory_example'
4
+ require 'advisory_dir_example'
4
5
5
6
describe "gems" do
6
7
Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../gems/*/*' ) ) do |path |
7
8
include_examples 'Gem Advisory' , path
8
9
end
10
+
11
+ Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../gems/*' ) ) do |dir |
12
+ include_examples 'Advisory Directory' , dir
13
+ end
9
14
end
10
15
11
16
describe "rubies" do
12
17
Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../rubies/*/*' ) ) do |path |
13
18
include_examples 'Rubies Advisory' , path
14
19
end
20
+
21
+ Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../rubies/*' ) ) do |dir |
22
+ include_examples 'Advisory Directory' , dir
23
+ end
15
24
end
Original file line number Diff line number Diff line change
1
+ require 'rspec'
2
+ require 'date'
3
+
4
+ shared_examples_for "Advisory Directory" do |dir |
5
+ describe dir do
6
+ let ( :advisory_paths ) { Dir . glob ( File . join ( dir , '*.yml' ) ) }
7
+ let ( :advisories ) do
8
+ advisory_paths . map do |path |
9
+ YAML . safe_load_file ( path , permitted_classes : [ Date ] )
10
+ end
11
+ end
12
+
13
+ it "must not contain duplicate CVE IDs" do
14
+ cve_ids = advisories . map { |advisory | advisory [ 'cve' ] }
15
+ cve_ids . compact!
16
+
17
+ expect ( cve_ids ) . to eq ( cve_ids . uniq )
18
+ end
19
+
20
+ it "must not contain duplicate GHSA IDs" do
21
+ ghsa_ids = advisories . map { |advisory | advisory [ 'ghsa' ] } . compact
22
+ ghsa_ids . compact!
23
+
24
+ expect ( ghsa_ids ) . to eq ( ghsa_ids . uniq )
25
+ end
26
+ end
27
+ end
You can’t perform that action at this time.
0 commit comments