Skip to content

Commit 485cf93

Browse files
author
Kevin Paulisse
committed
Add filter validation to --filters option
1 parent b3fc9ed commit 485cf93

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

lib/octocatalog-diff/cli/options/filters.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ def parse(parser, options)
1212
parser.on('--filters FILTER1[,FILTER2[,...]]', Array, 'Filters to apply') do |x|
1313
options[:filters] ||= []
1414
options[:filters].concat x
15+
16+
require_relative '../../catalog-diff/filter'
17+
options[:filters].each { |filter| OctocatalogDiff::CatalogDiff::Filter.assert_that_filter_exists(filter) }
1518
end
1619
end
1720
end

spec/octocatalog-diff/tests/cli/options/filters_spec.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,19 @@
55
describe OctocatalogDiff::Cli::Options do
66
describe '#opt_ignore_equivalent_yaml_files' do
77
it 'should accept comma delimited parameters for --filters' do
8-
result = run_optparse(['--filters', 'fizzbuzz,barbuzz'])
9-
expect(result[:filters]).to eq(%w(fizzbuzz barbuzz))
8+
result = run_optparse(['--filters', 'AbsentFile,YAML'])
9+
expect(result[:filters]).to eq(%w(AbsentFile YAML))
1010
end
1111

1212
it 'should accept multiple parameters for --filters' do
13-
result = run_optparse(['--filters', 'fizzbuzz', '--filters', 'barbuzz'])
14-
expect(result[:filters]).to eq(%w(fizzbuzz barbuzz))
13+
result = run_optparse(['--filters', 'AbsentFile', '--filters', 'YAML'])
14+
expect(result[:filters]).to eq(%w(AbsentFile YAML))
15+
end
16+
17+
it 'should raise ArgumentError if invalid filter is specified' do
18+
expect do
19+
run_optparse(['--filters', 'AbsentFile,FizzBuzzDoesNotExist,YAML'])
20+
end.to raise_error(ArgumentError, 'The filter FizzBuzzDoesNotExist is not valid')
1521
end
1622
end
1723
end

0 commit comments

Comments
 (0)