Skip to content

Commit 38d824f

Browse files
committed
Check for multiple patterns in convertible? method
1 parent 0c9f52a commit 38d824f

File tree

2 files changed

+11
-19
lines changed

2 files changed

+11
-19
lines changed

lib/octocatalog-diff/catalog-util/fileresources.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ def self.convert_file_resources(obj, environment = 'production')
3232
# @return [String] File system path to referenced file
3333
def self.file_path(src_in, modulepaths)
3434
valid_sources = [src_in].flatten.select { |line| line =~ %r{\Apuppet:///modules/([^/]+)/(.+)} }
35-
unless valid_sources.any?
36-
raise ArgumentError, "Bad parameter source #{src_in}"
37-
end
35+
return unless valid_sources.any?
3836

3937
valid_sources.each do |src|
4038
src =~ %r{\Apuppet:///modules/([^/]+)/(.+)}
@@ -129,9 +127,14 @@ def self.resource_convertible?(resource)
129127
!resource['parameters'].nil? && \
130128
resource['parameters'].key?('source') && \
131129
!resource['parameters'].key?('content') && \
132-
resource['parameters']['source'] =~ %r{^puppet:///modules/([^/]+)/(.+)}
130+
valid_sources?(resource)
131+
133132
false
134133
end
134+
135+
def self.valid_sources?(resource)
136+
[resource['parameters']['source']].flatten.select { |line| line =~ %r{\Apuppet:///modules/([^/]+)/(.+)} }.any?
137+
end
135138
end
136139
end
137140
end

spec/octocatalog-diff/tests/catalog-util/fileresources_spec.rb

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@ def catalog_from_fixture(path)
1414
end
1515

1616
describe '#file_path' do
17-
it 'should raise ArgumentError for unexpected format of file name' do
18-
src = 'asldfkjwoeifjslakfj'
19-
expect do
20-
OctocatalogDiff::CatalogUtil::FileResources.file_path(src, [])
21-
end.to raise_error(ArgumentError, /Bad parameter source/)
22-
end
23-
2417
it 'should return path if file is found' do
2518
allow(File).to receive(:exist?).and_call_original
2619
allow(File).to receive(:exist?).with('/a/foo/files/bar').and_return(true)
@@ -62,18 +55,14 @@ def catalog_from_fixture(path)
6255
expect(result).to be_nil
6356
end
6457

65-
it 'should raise an error if the only entry is malformed' do
58+
it 'should return nil if the only entry is malformed' do
6659
tries = 'sddfsdfsdf'
67-
expect do
68-
OctocatalogDiff::CatalogUtil::FileResources.file_path(tries, ['/a'])
69-
end.to raise_error(ArgumentError, /Bad parameter source/)
60+
expect(OctocatalogDiff::CatalogUtil::FileResources.file_path(tries, ['/a'])).to be_nil
7061
end
7162

72-
it 'should raise an error if the all entries are malformed' do
63+
it 'should return nil if the all entries are malformed' do
7364
tries = %w[sddfsdfsdf asdfasfdasdf]
74-
expect do
75-
OctocatalogDiff::CatalogUtil::FileResources.file_path(tries, ['/a'])
76-
end.to raise_error(ArgumentError, /Bad parameter source/)
65+
expect(OctocatalogDiff::CatalogUtil::FileResources.file_path(tries, ['/a'])).to be_nil
7766
end
7867
end
7968

0 commit comments

Comments
 (0)