-module(gleeam_code@test_cmd).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleeam_code/test_cmd.gleam").
-export([run/3]).
-file("src/gleeam_code/test_cmd.gleam", 5).
-spec run(binary(), binary(), fun((binary()) -> nil)) -> {ok, nil} |
{error, binary()}.
run(Base_dir, Target, Print) ->
gleam@result:'try'(
gleeam_code@internal@resolver:resolve_module(Base_dir, Target),
fun(Module_name) ->
Test_module_str = <<<<"solutions@"/utf8, Module_name/binary>>/binary,
"@solution_test"/utf8>>,
Print(<<"Running tests for: "/utf8, Target/binary>>),
Module_atom = erlang:binary_to_atom(Test_module_str),
case gleeam_code_test_runner_ffi:run_eunit(Module_atom) of
{ok, _} ->
{ok, nil};
{error, _} ->
{error, <<"Tests failed"/utf8>>}
end
end
).