add better documentation comments to lib.runTests

This commit is contained in:
hsjobeki 2023-02-23 10:21:58 +01:00
parent 03fb722016
commit 70c36dcfb8

View file

@ -109,6 +109,8 @@ rec {
traceSeqN 2 { a.b.c = 3; } null traceSeqN 2 { a.b.c = 3; } null
trace: { a = { b = {}; }; } trace: { a = { b = {}; }; }
=> null => null
Type: traceSeqN :: Int -> a -> b -> b
*/ */
traceSeqN = depth: x: y: traceSeqN = depth: x: y:
let snip = v: if isList v then noQuotes "[]" v let snip = v: if isList v then noQuotes "[]" v
@ -173,17 +175,68 @@ rec {
# -- TESTING -- # -- TESTING --
/* Evaluate a set of tests. A test is an attribute set `{expr, /* Evaluates a set of tests.
expected}`, denoting an expression and its expected result. The
result is a list of failed tests, each represented as `{name, A test is an attribute set `{expr, expected}`,
expected, actual}`, denoting the attribute name of the failing denoting an expression and its expected result.
The result is a `list` of __failed tests__, each represented as
`{name, expected, result}`,
- expected
- What was passed as `expected`
- result
- The actual `result` of the test
Denoting the attribute name of the failing
test and its expected and actual results. test and its expected and actual results.
Used for regression testing of the functions in lib; see Used for regression testing of the functions in lib; see
tests.nix for an example. Only tests having names starting with tests.nix for an example.
> Important: In general only `tests` having names starting with
"test" are run. "test" are run.
Add attr { tests = ["testName"]; } to run these tests only. - Add attr { tests = ["testName"]; } to run tests from list only.
- If `tests` in not specififed all tests will be evaluated.
Example:
runTests {
testAndOk = {
expr = lib.and true false;
expected = false;
};
testAndFail = {
expr = lib.and true false;
expected = true;
};
}
->
[
{
name = "testAndFail";
expected = true;
result = false;
}
]
Type:
runTests :: {
tests = [ String ];
${testName} :: {
expr :: a;
expected :: a;
};
}
->
[
{
name :: String;
expected :: a;
result :: a;
}
]
*/ */
runTests = runTests =
# Tests to run # Tests to run