Skip to content

Commit

Permalink
Provide a default line number
Browse files Browse the repository at this point in the history
  • Loading branch information
arothian committed Oct 12, 2021
1 parent 845e8ff commit 447871a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
7 changes: 6 additions & 1 deletion lib/cfn-nag/result_view/sarif_results.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def sarif_result(file_name:, violation:, index:)
uriBaseId: '%SRCROOT%'
},
region: {
startLine: violation.line_numbers[index]
startLine: sarif_line_number(violation.line_numbers[index])
}
},
logicalLocations: [
Expand All @@ -77,6 +77,11 @@ def sarif_result(file_name:, violation:, index:)
}
end

# Line number defaults to 1 unless provided with valid number
def sarif_line_number(line_number)
line_number.nil? || line_number.to_i < 1 ? 1 : line_number.to_i
end

def sarif_level(violation_type)
case violation_type
when RuleDefinition::WARNING
Expand Down
27 changes: 27 additions & 0 deletions spec/result_view/sarif_results_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,31 @@
expect(SarifResults.new.relative_path('spec/test_templates/yaml/vulgar_bad_syntax.yml')).to eq('spec/test_templates/yaml/vulgar_bad_syntax.yml')
end
end

describe '#sarif_line_number' do
context 'with nil line number' do
it 'should return 1' do
expect(SarifResults.new.sarif_line_number(nil)).to eq(1)
end
end
context 'with empty line number' do
it 'should return 1' do
expect(SarifResults.new.sarif_line_number('')).to eq(1)
end
end
context 'with line number less than 1' do
it 'should return 1' do
expect(SarifResults.new.sarif_line_number(0)).to eq(1)
expect(SarifResults.new.sarif_line_number(-1)).to eq(1)
expect(SarifResults.new.sarif_line_number('-1')).to eq(1)
end
end
context 'with positive line number' do
it 'should return line number' do
expect(SarifResults.new.sarif_line_number(1)).to eq(1)
expect(SarifResults.new.sarif_line_number('10')).to eq(10)
expect(SarifResults.new.sarif_line_number(100)).to eq(100)
end
end
end
end

0 comments on commit 447871a

Please sign in to comment.