Current section

Files

Jump to
startest src startest@test_case.erl
Raw

src/startest@test_case.erl

-module(startest@test_case).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/startest/test_case.gleam").
-export([test_decoder/0]).
-export_type([test/0, test_outcome/0, executed_test/0]).
-type test() :: {test, binary(), fun(() -> nil), boolean()}.
-type test_outcome() :: passed |
{failed, startest@test_failure:test_failure()} |
skipped.
-type executed_test() :: {executed_test, test(), test_outcome()}.
-file("src/startest/test_case.gleam", 41).
-spec test_body_decoder() -> gleam@dynamic@decode:decoder(fun(() -> nil)).
test_body_decoder() ->
gleam@dynamic@decode:new_primitive_decoder(
<<"TestBody"/utf8>>,
fun(Value) ->
Function = startest@internal@unsafe:coerce(Value),
{ok, Function}
end
).
-file("src/startest/test_case.gleam", 26).
-spec test_decoder() -> gleam@dynamic@decode:decoder(test()).
test_decoder() ->
gleam@dynamic@decode:then(
gleam@dynamic@decode:at(
[1],
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Name) ->
gleam@dynamic@decode:then(
gleam@dynamic@decode:at([2], test_body_decoder()),
fun(Body) ->
gleam@dynamic@decode:then(
gleam@dynamic@decode:at(
[3],
{decoder, fun gleam@dynamic@decode:decode_bool/1}
),
fun(Skipped) ->
gleam@dynamic@decode:success(
{test, Name, Body, Skipped}
)
end
)
end
)
end
).