Skip to content

Commit 06c1443

Browse files
committed
Adjust trigger for PassAsyncInTestCases
1 parent 6bd912e commit 06c1443

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

lib/credo/check/refactor/pass_async_in_test_cases.ex

+8-15
Original file line numberDiff line numberDiff line change
@@ -27,47 +27,40 @@ defmodule Credo.Check.Refactor.PassAsyncInTestCases do
2727

2828
# `use` with options
2929
defp traverse(
30-
{:use, _, [{_, meta, module_namespace}, [_ | _] = options]} = ast,
30+
{:use, meta, [{_, _meta, module_namespace}, [_ | _] = options]} = ast,
3131
issues,
3232
issue_meta
3333
) do
34-
module_name = module_name_from(module_namespace)
34+
module_name = Credo.Code.Name.last(module_namespace)
3535

3636
if String.ends_with?(module_name, "Case") and !Keyword.has_key?(options, :async) do
37-
{ast, issues ++ [issue_for(module_name, meta[:line], issue_meta)]}
37+
{ast, issues ++ [issue_for(meta[:line], issue_meta)]}
3838
else
3939
{ast, issues}
4040
end
4141
end
4242

4343
# `use` without options
44-
defp traverse({:use, _, [{_, meta, module_namespace}]} = ast, issues, issue_meta) do
45-
module_name = module_name_from(module_namespace)
44+
defp traverse({:use, meta, [{_op, _meta, module_namespace}]} = ast, issues, issue_meta) do
45+
module_name = Credo.Code.Name.last(module_namespace)
4646

4747
if String.ends_with?(module_name, "Case") do
48-
{ast, issues ++ [issue_for(module_name, meta[:line], issue_meta)]}
48+
{ast, issues ++ [issue_for(meta[:line], issue_meta)]}
4949
else
5050
{ast, issues}
5151
end
5252
end
5353

54-
# Ignore all other AST nodes
5554
defp traverse(ast, issues, _issue_meta) do
5655
{ast, issues}
5756
end
5857

59-
defp issue_for(module_name, line_no, issue_meta) do
58+
defp issue_for(line_no, issue_meta) do
6059
format_issue(
6160
issue_meta,
6261
message: "Pass an `:async` boolean option to `use` a test case module",
63-
trigger: module_name,
62+
trigger: "use",
6463
line_no: line_no
6564
)
6665
end
67-
68-
defp module_name_from(module_namespace) do
69-
module_namespace
70-
|> List.last()
71-
|> to_string()
72-
end
7366
end

test/credo/check/refactor/pass_async_in_test_cases_test.exs

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ defmodule Credo.Check.Refactor.PassAsyncInTestCasesTest do
6161
|> run_check(@described_check)
6262
|> assert_issue(fn issue ->
6363
assert issue.line_no == 2
64+
assert issue.trigger == "use"
6465
end)
6566
end
6667

@@ -75,6 +76,7 @@ defmodule Credo.Check.Refactor.PassAsyncInTestCasesTest do
7576
|> run_check(@described_check)
7677
|> assert_issue(fn issue ->
7778
assert issue.line_no == 3
79+
assert issue.trigger == "use"
7880
end)
7981
end
8082
end

0 commit comments

Comments
 (0)