Current section

Files

Jump to
gleeunit src gleeunit@should.erl
Raw

src/gleeunit@should.erl

-module(gleeunit@should).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([equal/2, not_equal/2, be_ok/1, be_error/1, be_some/1, be_none/1, be_true/1, be_false/1, fail/0]).
-spec equal(FMP, FMP) -> nil.
equal(A, B) ->
gleeunit_ffi:should_equal(A, B).
-spec not_equal(FMQ, FMQ) -> nil.
not_equal(A, B) ->
gleeunit_ffi:should_not_equal(A, B).
-spec be_ok({ok, FMR} | {error, any()}) -> FMR.
be_ok(A) ->
gleeunit_ffi:should_be_ok(A).
-spec be_error({ok, any()} | {error, FMW}) -> FMW.
be_error(A) ->
gleeunit_ffi:should_be_error(A).
-spec be_some(gleam@option:option(FMZ)) -> FMZ.
be_some(A) ->
case A of
{some, Value} ->
Value;
_ ->
erlang:error(#{gleam_error => panic,
message => gleam@string:concat(
[<<"\n"/utf8>>,
gleam@string:inspect(A),
<<"\nshould be some"/utf8>>]
),
module => <<"gleeunit/should"/utf8>>,
function => <<"be_some"/utf8>>,
line => 57})
end.
-spec be_none(gleam@option:option(any())) -> nil.
be_none(A) ->
case A of
none ->
nil;
_ ->
erlang:error(#{gleam_error => panic,
message => gleam@string:concat(
[<<"\n"/utf8>>,
gleam@string:inspect(A),
<<"\nshould be none"/utf8>>]
),
module => <<"gleeunit/should"/utf8>>,
function => <<"be_none"/utf8>>,
line => 64})
end.
-spec be_true(boolean()) -> nil.
be_true(Actual) ->
_pipe = Actual,
gleeunit_ffi:should_equal(_pipe, true).
-spec be_false(boolean()) -> nil.
be_false(Actual) ->
_pipe = Actual,
gleeunit_ffi:should_equal(_pipe, false).
-spec fail() -> nil.
fail() ->
be_true(false).