File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ def initialize(version = nil)
1818 end
1919
2020 def find_node ( string , max_depth : 'variant' )
21+ return nil unless valid_identifier? ( string )
2122 @_found_nodes [ string + max_depth ] ||= walk_node_tree ( string , max_depth : max_depth )
2223 end
2324
Original file line number Diff line number Diff line change 5151 end
5252 end
5353
54+ describe '#find_node' do
55+ subject { sample_map . find_node ( vrt_id ) }
56+
57+ context 'when vrt_id is nil' do
58+ let ( :vrt_id ) { nil }
59+
60+ it { is_expected . to be_nil }
61+ end
62+
63+ context 'when vrt_id is not a valid identifier' do
64+ let ( :vrt_id ) { "I'm not valid" }
65+
66+ it { is_expected . to be_nil }
67+ end
68+
69+ context 'when vrt_id is not a string' do
70+ let ( :vrt_id ) { 55 }
71+
72+ it { is_expected . to be_nil }
73+ end
74+
75+ context 'when vrt_id is a valid identifier' do
76+ context 'vrt_id does not exist in version' do
77+ let ( :vrt_id ) { 'cool_new_concept' }
78+
79+ it { is_expected . to be_nil }
80+ end
81+
82+ context 'vrt_id exists in version' do
83+ context 'vrt_id is category level' do
84+ let ( :vrt_id ) { 'server_security_misconfiguration' }
85+
86+ it { is_expected . to be_a ( VRT ::Node ) }
87+ end
88+
89+ context 'vrt_id is a variant' do
90+ let ( :vrt_id ) { 'server_security_misconfiguration.using_default_credentials.production_server' }
91+
92+ it { is_expected . to be_a ( VRT ::Node ) }
93+ end
94+ end
95+ end
96+ end
97+
5498 describe '#get_lineage' do
5599 context 'with a complex hierarchy' do
56100 let ( :id ) { 'server_security_misconfiguration.using_default_credentials.production_server' }
You can’t perform that action at this time.
0 commit comments