Skip to content

Commit

Permalink
Enable trigger check on GitHub actions
Browse files Browse the repository at this point in the history
  • Loading branch information
rrrene committed Feb 4, 2024
1 parent 9822754 commit fadfaac
Show file tree
Hide file tree
Showing 36 changed files with 177 additions and 75 deletions.
24 changes: 24 additions & 0 deletions .github/workflows/housekeeping-trigger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: "Housekeeping: Trigger"
on:
push:
branches:
- master
- release/*
pull_request:
branches:
- master

jobs:
test:
name: "mix test ..."
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: erlef/setup-beam@v1
with:
otp-version: 26.2
elixir-version: 1.16.0
- run: mix deps.get
- run: mix test test/credo/check/housekeeping_trigger.exs
2 changes: 1 addition & 1 deletion lib/credo/check/readability/redundant_blank_lines.ex
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ defmodule Credo.Check.Readability.RedundantBlankLines do
issue_meta,
message: "There should be no more than #{max_blank_lines} consecutive blank lines.",
line_no: line,
trigger: ""
trigger: Issue.no_trigger()
)
end

Expand Down
12 changes: 6 additions & 6 deletions lib/credo/check/refactor/map_into.ex
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@ defmodule Credo.Check.Refactor.MapInto do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_into")
new_issue = issue_for(issue_meta, meta[:line], "Enum.into")

{ast, issues ++ List.wrap(new_issue)}
end

defp traverse(
{:|>, meta,
{:|>, _,
[
{{:., _, [{:__aliases__, _, [:Enum]}, :map]}, _, _},
{{:., _, [{:__aliases__, _, [:Enum]}, :into]}, _, _}
{{:., _, [{:__aliases__, meta, [:Enum]}, :into]}, _, _}
]} = ast,
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_into")
new_issue = issue_for(issue_meta, meta[:line], "Enum.into")

{ast, issues ++ List.wrap(new_issue)}
end
Expand All @@ -69,7 +69,7 @@ defmodule Credo.Check.Refactor.MapInto do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_into")
new_issue = issue_for(issue_meta, meta[:line], "|>")

{ast, issues ++ List.wrap(new_issue)}
end
Expand All @@ -88,7 +88,7 @@ defmodule Credo.Check.Refactor.MapInto do
issue_meta
)
when length(into_args) == 1 do
new_issue = issue_for(issue_meta, meta[:line], "map_into")
new_issue = issue_for(issue_meta, meta[:line], "|>")

{ast, issues ++ List.wrap(new_issue)}
end
Expand Down
8 changes: 4 additions & 4 deletions lib/credo/check/refactor/map_join.ex
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ defmodule Credo.Check.Refactor.MapJoin do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_join")
new_issue = issue_for(issue_meta, meta[:line], "Enum.join")
{ast, issues ++ List.wrap(new_issue)}
end

Expand All @@ -48,7 +48,7 @@ defmodule Credo.Check.Refactor.MapJoin do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_join")
new_issue = issue_for(issue_meta, meta[:line], "|>")
{ast, issues ++ List.wrap(new_issue)}
end

Expand All @@ -61,7 +61,7 @@ defmodule Credo.Check.Refactor.MapJoin do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_join")
new_issue = issue_for(issue_meta, meta[:line], "|>")
{ast, issues ++ List.wrap(new_issue)}
end

Expand All @@ -78,7 +78,7 @@ defmodule Credo.Check.Refactor.MapJoin do
issues,
issue_meta
) do
new_issue = issue_for(issue_meta, meta[:line], "map_join")
new_issue = issue_for(issue_meta, meta[:line], "|>")
{ast, issues ++ List.wrap(new_issue)}
end

Expand Down
2 changes: 1 addition & 1 deletion lib/credo/check/warning/wrong_test_file_extension.ex
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ defmodule Credo.Check.Warning.WrongTestFileExtension do
issue_meta,
message: "Test files should end with .exs",
line_no: 1,
trigger: ""
trigger: Issue.no_trigger()
)
end
end
4 changes: 3 additions & 1 deletion test/credo/check/consistency/line_endings_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ defmodule Credo.Check.Consistency.LineEndingsTest do
[@unix_line_endings, @windows_line_endings]
|> to_source_files
|> run_check(@described_check)
|> assert_issue
|> assert_issue(fn issue ->
assert issue.trigger == "\r\n"
end)
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ defmodule Credo.Check.Consistency.MultiAliasImportRequireUseTest do
[@single, @multi_module_same_file]
|> to_source_files
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
# TODO: we need a real trigger for this
assert issue.trigger == ""
end)
end
end
4 changes: 3 additions & 1 deletion test/credo/check/consistency/space_around_operators_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,9 @@ defmodule Credo.Check.Consistency.SpaceAroundOperatorsTest do
]
|> to_source_files()
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "+"
end)
end

test "it should report the correct result /6" do
Expand Down
12 changes: 10 additions & 2 deletions test/credo/check/consistency/tabs_or_spaces_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,11 @@ defmodule Credo.Check.Consistency.TabsOrSpacesTest do
]
|> to_source_files
|> run_check(@described_check)
|> assert_issues()
|> assert_issues(fn issues ->
assert Enum.any?(issues, fn issue ->
issue.trigger == "\t"
end)
end)
end

@tag :to_be_implemented
Expand All @@ -90,6 +94,10 @@ defmodule Credo.Check.Consistency.TabsOrSpacesTest do
]
|> to_source_files
|> run_check(@described_check, force: :tabs)
|> assert_issues()
|> assert_issues(fn issues ->
assert Enum.any?(issues, fn issue ->
issue.trigger == " "
end)
end)
end
end
8 changes: 6 additions & 2 deletions test/credo/check/design/alias_usage_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,9 @@ defmodule Credo.Check.Design.AliasUsageTest do
"""
|> to_source_file
|> run_check(@described_check, if_referenced: true)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "Credo.Foo.Bar"
end)
end

#
Expand Down Expand Up @@ -394,6 +396,8 @@ defmodule Credo.Check.Design.AliasUsageTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "Exzmq.Socket"
end)
end
end
6 changes: 4 additions & 2 deletions test/credo/check/design/skip_test_without_comment_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ defmodule Credo.Check.Design.SkipTestWithoutCommentTest do
# cases raising issues
#

@tag :skip
# @tag :skip
test "it should report a violation" do
"""
defmodule CredoSampleModuleTest do
Expand All @@ -49,6 +49,8 @@ defmodule Credo.Check.Design.SkipTestWithoutCommentTest do
"""
|> to_source_file("foo_test.exs")
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "@tag :skip"
end)
end
end
6 changes: 3 additions & 3 deletions test/credo/check/housekeeping_trigger.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
defmodule Credo.Check.HousekeepingHeredocsInTestsTest do
defmodule Credo.Check.HousekeepingTriggerTest do
use Credo.Test.Case

@tag housekeeping: :trigger
Expand All @@ -10,14 +10,14 @@ defmodule Credo.Check.HousekeepingHeredocsInTestsTest do
|> Enum.reject(
&String.match?(
&1,
~r/(wrong_test_file|unreachable_code|regex_multiple_spaces|regex_empty_character_classes|module_size|case_trivial_matches)/
~r/(wrong_test_file|unreachable_code|regex_multiple_spaces|regex_empty_character_classes|module_size|case_trivial_matches|perceived_complexity|duplicated_code)/
)
)
|> Enum.map(&{&1, File.read!(&1)})
|> Enum.flat_map(fn {filename, source} ->
ast = Code.string_to_quoted!(source)

{ast, acc} =
{_ast, acc} =
Macro.prewalk(ast, [], fn
{:test, _, [_ | _] = args}, acc ->
Macro.prewalk(args, acc, fn
Expand Down
4 changes: 3 additions & 1 deletion test/credo/check/readability/block_pipe_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ defmodule Credo.Check.Readability.BlockPipeTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "|>"
end)
end

test "it should report a violation for if" do
Expand Down
12 changes: 9 additions & 3 deletions test/credo/check/readability/module_doc_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ defmodule Credo.Check.Readability.ModuleDocTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "CredoSampleModule"
end)
end

test "it should report empty multi line strings" do
Expand All @@ -91,7 +93,9 @@ defmodule Credo.Check.Readability.ModuleDocTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "CredoSampleModule"
end)
end

test "it should report slightly unexpected code" do
Expand All @@ -100,6 +104,8 @@ defmodule Credo.Check.Readability.ModuleDocTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "Person"
end)
end
end
8 changes: 6 additions & 2 deletions test/credo/check/readability/module_names_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@ defmodule Credo.Check.Readability.ModuleNamesTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "Credo.Sample_Module"
end)
end

test "it should report a violation with multiple segments when one is invalid" do
Expand All @@ -136,6 +138,8 @@ defmodule Credo.Check.Readability.ModuleNamesTest do
"""
|> to_source_file
|> run_check(@described_check, ignore: [~r/Another_Module$/])
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "Credo.Another_Module.Sample_Module"
end)
end
end
4 changes: 3 additions & 1 deletion test/credo/check/readability/nested_function_calls_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,8 @@ defmodule Credo.Check.Readability.NestedFunctionCallsTest do
"""
|> to_source_file()
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "SomeMod.some_fun"
end)
end
end
4 changes: 3 additions & 1 deletion test/credo/check/readability/one_pipe_per_line_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ defmodule Credo.Check.Readability.OnePipePerLineTest do
"""
|> to_source_file()
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "|>"
end)
end

test "it should report multiple violations when having multiples pipes" do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,9 @@ defmodule Credo.Check.Readability.ParenthesesInConditionTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "unless"
end)
end

test "it should report violations with spaces before the parentheses" do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ defmodule Credo.Check.Readability.PipeIntoAnonymousFunctionsTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "|>"
end)
end

test "it should report a violation for multiple violations" do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@ defmodule Credo.Check.Readability.PredicateFunctionNamesTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "is_valid?"
end)
end

test "it should report a violation with arity /2" do
Expand All @@ -124,6 +126,8 @@ defmodule Credo.Check.Readability.PredicateFunctionNamesTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == "is_valid"
end)
end
end
4 changes: 3 additions & 1 deletion test/credo/check/readability/prefer_unquoted_atoms_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ defmodule Credo.Check.Readability.PreferUnquotedAtomsTest do
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == ~s(:"quoted_atom")
end)
end

test "it should report cases where a quoted keyword identifier is used and could be unquoted" do
Expand Down
4 changes: 3 additions & 1 deletion test/credo/check/readability/redundant_blank_lines_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,9 @@ end"
"""
|> to_source_file
|> run_check(@described_check)
|> assert_issue()
|> assert_issue(fn issue ->
assert issue.trigger == Credo.Issue.no_trigger()
end)
end

test "it should report based on max_blank_lines param" do
Expand Down
Loading

0 comments on commit fadfaac

Please sign in to comment.