Current section

Files

Jump to
startest src startest@test_tree.erl
Raw

src/startest@test_tree.erl

-module(startest@test_tree).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([all_tests/1]).
-export_type([test_tree/0]).
-type test_tree() :: {suite, binary(), list(test_tree())} |
{test, startest@test_case:test()}.
-spec collect_all_tests(
test_tree(),
list(binary()),
list({binary(), startest@test_case:test()})
) -> list({binary(), startest@test_case:test()}).
collect_all_tests(Tree, Path, Acc) ->
case Tree of
{suite, Name, Suite} ->
_pipe = Suite,
gleam@list:flat_map(
_pipe,
fun(_capture) ->
collect_all_tests(_capture, [Name | Path], Acc)
end
);
{test, Test_case} ->
Test_path = begin
_pipe@1 = [erlang:element(2, Test_case) | Path],
_pipe@2 = gleam@list:reverse(_pipe@1),
gleam@string:join(_pipe@2, <<" ❯ "/utf8>>)
end,
[{Test_path, Test_case} | Acc]
end.
-spec all_tests(test_tree()) -> list({binary(), startest@test_case:test()}).
all_tests(Tree) ->
collect_all_tests(Tree, [], []).