nixite/testing/it.nix

29 lines
683 B
Nix
Raw Normal View History

msg:
2024-01-01 11:12:37 +00:00
{ actual, expected, asString ? false, asJSON ? false, removeDunders ? false
, safeToPrint ? true }:
2024-01-01 08:10:32 +00:00
let
2024-01-01 09:43:52 +00:00
preProcess = v:
if removeDunders then
2024-01-01 12:42:18 +00:00
undunder v
2024-01-01 09:43:52 +00:00
else if asString then
toString v
else if asJSON then
builtins.toJSON v
else
v;
2024-01-01 08:10:32 +00:00
a = preProcess actual;
e = preProcess expected;
2024-01-01 12:42:18 +00:00
undunder = v: if builtins.isAttrs v then builtins.removeAttrs v [ "__toString" "__functor" ] else v;
out = (if safeToPrint then builtins.toJSON (undunder actual) else ''{"msg": "refusing to print"}'');
2024-01-01 09:43:52 +00:00
in if (a == e) then ''
echo 'it ${msg}'
'' else
2024-01-01 12:42:18 +00:00
builtins.trace "FAILED ${msg}" ''
2024-01-01 11:12:37 +00:00
echo FAILED ${msg}
2024-01-01 12:42:18 +00:00
echo '${out}' | jq '.'
2024-01-01 11:12:37 +00:00
''