added option to add test suites not in a file

This commit is contained in:
tristan 2024-12-08 19:54:37 +00:00
parent 5007770e88
commit bfa12db1db
4 changed files with 16 additions and 6 deletions

View file

@ -18,6 +18,9 @@
./test/test.test.nix
./test/describe.test.nix
./test/watch.test.nix
({describe, it, ...}: [(describe "suite" [
(it "runs this test" {actual = true; expected = true;})
])])
];
packages.x86_64-linux.example = tix.run [

View file

@ -8,7 +8,7 @@ in [
(describe "the test function" [
(it "get's test results" {
expected = {
name = toString ./example.test.nix;
name = builtins.baseNameOf ./example.test.nix;
value = {
"an example" = {
succeeds = {
@ -23,5 +23,9 @@ in [
actual = test ./bad/string.nix;
throws = true;
})
(it "tests suite that is not a file" {
actual = test ({...}: []);
expected = {name = "anonymous"; value = {};};
})
])
]

View file

@ -1,6 +1,6 @@
pkgs: files: let
pkgs: suite: let
test = import ./test.nix;
res = builtins.listToAttrs (map test files);
res = builtins.listToAttrs (map test suite);
resFile = builtins.toFile "results" (builtins.toJSON res);
filters = import ./filters.nix;
getNix = "import ${./eval.nix} ${resFile}";

View file

@ -1,14 +1,17 @@
path: let
it = import ./it.nix;
describe = import ./describe.nix;
suite = import path;
suite = if builtins.typeOf path == "path" then import path
else path;
name = if builtins.typeOf path == "path" then builtins.baseNameOf path
else "anonymous";
in
builtins.trace ("tix: " + builtins.baseNameOf path)
builtins.trace "tix: ${name}"
(
if !builtins.isFunction suite
then throw "A test suite should be in the form { it }: [ <tests> ]."
else {
name = toString path;
inherit name;
value = builtins.listToAttrs (suite {inherit it describe;});
}
)