Current section

Files

Jump to
gurka src gurka_formatter_compact.erl
Raw

src/gurka_formatter_compact.erl

-module(gurka_formatter_compact).
-include("gurka.hrl").
-export([format/3]).
-spec format(Status, Result, Opts) -> io_lib:chars() when
Status :: ok | fail | error,
Result :: result() | file:posix() | badarg | terminated | system_limit,
Opts :: [term()].
format(Status, Result, Opts) ->
case proplists:get_value(file, Opts) of
undefined ->
format_steps(Result);
File when Status == ok ->
io_lib:format("\e[1;32m~s ~s\e[0m~n", ["PASS", File]) ++ format_steps(Result);
File ->
io_lib:format("\e[1;31m~s ~s\e[0m~n", ["FAIL", File]) ++ format_steps(Result)
end.
format_steps([]) ->
[];
format_steps([Step | Steps]) when is_list(Step) ->
format_steps(Step) ++ format_steps(Steps);
format_steps([{ok, _} | Steps]) ->
format_steps(Steps);
format_steps([{Result, #step{row = Row}} | Steps]) ->
io_lib:format("\e[0;31m~B: ~p\e[0m~n", [Row, Result]) ++ format_steps(Steps).