Current section

Files

Jump to
startest src startest@assertion_error.erl
Raw

src/startest@assertion_error.erl

-module(startest@assertion_error).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/startest/assertion_error.gleam").
-export([raise/1]).
-export_type([assertion_error/0, rescued_assertion_error/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type assertion_error() :: {assertion_error, binary(), binary(), binary()}.
-type rescued_assertion_error() :: {rescued_assertion_error, binary()}.
-file("src/startest/assertion_error.gleam", 25).
-spec show_diff(binary(), binary()) -> binary().
show_diff(Actual, Expected) ->
erlang:list_to_binary(
[gleam_community@ansi:green(<<"- Expected"/utf8>>),
<<"\n"/utf8>>,
gleam_community@ansi:red(<<"+ Received"/utf8>>),
<<"\n\n"/utf8>>,
gleam_community@ansi:green(<<"- "/utf8, Expected/binary>>),
<<"\n"/utf8>>,
gleam_community@ansi:red(<<"+ "/utf8, Actual/binary>>)]
).
-file("src/startest/assertion_error.gleam", 15).
?DOC(
" Raises an `AssertionError`.\n"
"\n"
" Intended for use by matchers to cause a test to fail.\n"
).
-spec raise(assertion_error()) -> any().
raise(Error) ->
Blank_line = <<"\n\n"/utf8>>,
erlang:error(#{gleam_error => panic,
message => erlang:list_to_binary(
[erlang:element(2, Error),
Blank_line,
show_diff(
erlang:element(3, Error),
erlang:element(4, Error)
)]
),
file => <<?FILEPATH/utf8>>,
module => <<"startest/assertion_error"/utf8>>,
function => <<"raise"/utf8>>,
line => 18}).