Skip to content

Commit b9a76f1

Browse files
committed
Add test for Check.format_issue/2
1 parent 47cad6b commit b9a76f1

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

lib/credo/check.ex

+10-5
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,9 @@ defmodule Credo.Check do
707707

708708
priority = Priority.to_integer(issue_priority)
709709

710-
exit_status_or_category = opts[:exit_status] || Params.exit_status(params, check) || issue_category
710+
exit_status_or_category =
711+
opts[:exit_status] || Params.exit_status(params, check) || issue_category
712+
711713
exit_status = Check.to_exit_status(exit_status_or_category)
712714

713715
line_no = opts[:line_no]
@@ -723,6 +725,8 @@ defmodule Credo.Check do
723725
end
724726

725727
%Issue{
728+
check: check,
729+
category: issue_category,
726730
priority: priority,
727731
filename: source_file.filename,
728732
message: opts[:message],
@@ -734,14 +738,15 @@ defmodule Credo.Check do
734738
}
735739
|> add_line_no_options(line_no, source_file)
736740
|> add_column_if_missing(trigger, line_no, column, source_file)
737-
|> add_check_and_category(check, issue_category)
741+
|> force_priority_if_given(opts[:priority])
738742
end
739743

740-
defp add_check_and_category(issue, check, issue_category) do
744+
defp force_priority_if_given(issue, nil), do: issue
745+
746+
defp force_priority_if_given(issue, priority) do
741747
%Issue{
742748
issue
743-
| check: check,
744-
category: issue_category
749+
| priority: priority
745750
}
746751
end
747752

test/credo/check_test.exs

+39
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,43 @@ defmodule Credo.CheckTest do
5252

5353
assert Credo.Check.Readability.ModuleDoc.id() == "EX3009"
5454
end
55+
56+
defmodule MyCustomCheck1 do
57+
use Credo.Check, category: :example, base_priority: :high
58+
59+
def run(%SourceFile{} = source_file, params \\ []) do
60+
issue_meta = IssueMeta.for(source_file, params)
61+
62+
[
63+
format_issue(issue_meta,
64+
priority: 113,
65+
trigger: :foobar,
66+
line_no: 3,
67+
column: 15,
68+
exit_status: 23,
69+
severity: 11
70+
)
71+
]
72+
end
73+
end
74+
75+
test "it should use format_issue/2" do
76+
"""
77+
defmodule AliasTest do
78+
def test do
79+
Any.Thing.foobar()
80+
end
81+
end
82+
"""
83+
|> to_source_file
84+
|> run_check(MyCustomCheck1)
85+
|> assert_issue(fn issue ->
86+
assert issue.priority == 113
87+
assert issue.trigger == "foobar"
88+
assert issue.line_no == 3
89+
assert issue.column == 15
90+
assert issue.exit_status == 23
91+
assert issue.severity == 11
92+
end)
93+
end
5594
end

0 commit comments

Comments
 (0)