diff --git a/lib/engine_credo/issue.ex b/lib/engine_credo/issue.ex index e9953bc..b16ca31 100644 --- a/lib/engine_credo/issue.ex +++ b/lib/engine_credo/issue.ex @@ -8,9 +8,21 @@ defmodule EngineCredo.Issue do @derive [Poison.Encoder] + @remediation_points %{ + "Bug Risk" => 100_000, + "Clarity" => 50_000, + "Compatibility" => 50_000, + "Complexity" => 100_000, + "Duplication" => 100_000, + "Performance" => 50_000, + "Security" => 100_000, + "Style" => 50_000, + } + defstruct type: nil, check_name: nil, description: nil, + remediation_points: nil, categories: [], location: %{} @@ -22,12 +34,14 @@ defmodule EngineCredo.Issue do """ def convert(issue, path_prefix \\ "") do issue = update_in(issue.filename, &Path.relative_to(&1, path_prefix)) + category = EngineCredo.IssueCategories.for_check(issue.check) %EngineCredo.Issue{ type: "issue", check_name: issue.check, description: issue.message, - categories: EngineCredo.IssueCategories.for_check(issue.check), + remediation_points: @remediation_points[category], + categories: [category], location: locations(issue) } end diff --git a/test/engine_credo/formatter_test.exs b/test/engine_credo/formatter_test.exs index 252b712..aa7a29a 100644 --- a/test/engine_credo/formatter_test.exs +++ b/test/engine_credo/formatter_test.exs @@ -12,8 +12,8 @@ defmodule EngineCredo.FormatterTest do |> Formatter.print end) - first_issue = ~S({"type":"issue","location":{"path":"lib/design_issues.exs","lines":{"end":4,"begin":4}},"description":"Found a TODO tag in a comment: # TODO: issue","check_name":"Elixir.Credo.Check.Design.TagTODO","categories":["Bug Risk"]}) - second_issue = ~S({"type":"issue","location":{"path":"lib/design_issues.exs","lines":{"end":5,"begin":5}},"description":"Found a FIXME tag in a comment: # FIXME: issue","check_name":"Elixir.Credo.Check.Design.TagFIXME","categories":["Bug Risk"]}) + first_issue = ~S({"type":"issue","remediation_points":100000,"location":{"path":"lib/design_issues.exs","lines":{"end":4,"begin":4}},"description":"Found a TODO tag in a comment: # TODO: issue","check_name":"Elixir.Credo.Check.Design.TagTODO","categories":["Bug Risk"]}) + second_issue = ~S({"type":"issue","remediation_points":100000,"location":{"path":"lib/design_issues.exs","lines":{"end":5,"begin":5}},"description":"Found a FIXME tag in a comment: # FIXME: issue","check_name":"Elixir.Credo.Check.Design.TagFIXME","categories":["Bug Risk"]}) expected_output = first_issue <> "\0\n" <> second_issue <> "\0\n"