File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 11load File . join ( File . dirname ( __FILE__ ) , 'spec_helper.rb' )
22require 'gem_advisory_example'
33require 'ruby_advisory_example'
4+ require 'advisory_dir_example'
45
56describe "gems" do
67 Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../gems/*/*' ) ) do |path |
78 include_examples 'Gem Advisory' , path
89 end
10+
11+ Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../gems/*' ) ) do |dir |
12+ include_examples 'Advisory Directory' , dir
13+ end
914end
1015
1116describe "rubies" do
1217 Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../rubies/*/*' ) ) do |path |
1318 include_examples 'Rubies Advisory' , path
1419 end
20+
21+ Dir . glob ( File . join ( File . dirname ( __FILE__ ) , '../rubies/*' ) ) do |dir |
22+ include_examples 'Advisory Directory' , dir
23+ end
1524end
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