spec/cc/analyzer/issue_validator_spec.rb (32 lines of code) (raw):
require "spec_helper"
module CC::Analyzer
describe IssueValidator do
describe "#valid?" do
it "returns true when everything is valid" do
valid_issue = {
"categories" => ["Security"],
"check_name" => "Insecure Dependency",
"description" => "RDoc 2.3.0 through 3.12 XSS Exploit",
"engine_name" => "bundler-audit",
"location" => {
"lines" => { "begin" => 140, "end" => 140 },
"path" => "Gemfile.lock",
},
"remediation_points" => 500_000,
"type" => "Issue",
}
validator = IssueValidator.new(valid_issue)
expect(validator).to be_valid
end
it "stores an error for invalid issues" do
allow(CC::Analyzer.logger).to receive(:error)
validator = IssueValidator.new({})
expect(validator).not_to be_valid
expect(validator.error).to eq(
message: "Category must be at least one of Bug Risk, Clarity, Compatibility, Complexity, Duplication, Performance, Security, Style; Check name must be present; Description must be present; Location is not formatted correctly: location.lines or location.positions must be present; File does not exist: ''; Path is not a file: ''; Path must be present; Path must be relative to the project directory; Type must be 'issue' but was '': `{}`.",
document: {},
)
end
end
end
end