tix/flake.nix
2024-12-08 21:27:18 +00:00

66 lines
1.5 KiB
Nix

{
description = "A testing library for nix";
outputs = {
self,
nixpkgs,
}: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
tix = import ./tix/. {inherit pkgs;};
in
tix
// {
formatter.x86_64-linux = pkgs.alejandra;
packages.x86_64-linux.test = tix.run [
./test/it.test.nix
./test/test.test.nix
./test/describe.test.nix
./test/watch.test.nix
({
describe,
it,
...
}: [
(describe "suite" [
(it "runs this test" {
actual = true;
expected = true;
})
])
(it "runs another test" {
actual = true;
expected = true;
})
])
];
packages.x86_64-linux.example = tix.run [
./mytest.nix
];
packages.x86_64-linux.watchpipe = tix.watch {
cmd = "nix run --show-trace .#test -- file";
view = "tee -a /tmp/tix-output";
};
packages.x86_64-linux.watch = tix.watch {
cmd = "nix run --show-trace .#test -- $2";
view = ''
${pkgs.lib.getExe pkgs.bat} \
--paging=never --language=''${2:-json} --file-name="test results"'';
};
packages.x86_64-linux.results = pkgs.writeShellScriptBin "results" ''
tail -f -n1 /tmp/tix-output | {
while read out
do
clear
jq '${tix.filters.overview}' $out
done
}
'';
};
}