mirror of
https://gitlab.com/TECHNOFAB/nixtest.git
synced 2025-12-12 02:00:18 +01:00
test: nest sample tests as fixtures in real tests
also use new test helpers
This commit is contained in:
parent
bed029f4a9
commit
006537e6ab
4 changed files with 186 additions and 142 deletions
86
tests/lib_test.nix
Normal file
86
tests/lib_test.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
ntlib,
|
||||
...
|
||||
}: {
|
||||
suites."Lib Tests".tests = [
|
||||
{
|
||||
name = "autodiscovery";
|
||||
type = "script";
|
||||
script = let
|
||||
actual = builtins.toFile "actual" (builtins.toJSON (ntlib.autodiscover {
|
||||
dir = ./fixtures;
|
||||
}));
|
||||
in
|
||||
# sh
|
||||
''
|
||||
${ntlib.helpers.path [pkgs.gnugrep]}
|
||||
${ntlib.helpers.scriptHelpers}
|
||||
assert_file_contains ${actual} "sample_test.nix" "should find sample_test.nix"
|
||||
assert_file_contains ${actual} "\"base\":\"/nix/store/.*-source/tests/fixtures" "should set base to fixtures dir"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "binary";
|
||||
type = "script";
|
||||
script = let
|
||||
binary =
|
||||
(ntlib.mkBinary {
|
||||
nixtests = "stub";
|
||||
extraParams = "--pure";
|
||||
})
|
||||
+ "/bin/nixtests:run";
|
||||
in
|
||||
# sh
|
||||
''
|
||||
${ntlib.helpers.path [pkgs.gnugrep]}
|
||||
${ntlib.helpers.scriptHelpers}
|
||||
assert_file_contains ${binary} "nixtest" "should contain nixtest"
|
||||
assert_file_contains ${binary} "--pure" "should contain --pure arg"
|
||||
assert_file_contains ${binary} "--tests=stub" "should contain --tests arg"
|
||||
|
||||
run "${binary} --help"
|
||||
assert_eq $exit_code 0 "should exit 0"
|
||||
assert_contains "$output" "Usage of nixtest" "should show help"
|
||||
|
||||
run "${binary}"
|
||||
assert_eq $exit_code 1 "should exit 1"
|
||||
assert_contains "$output" "Tests file does not exist"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "full run with fixtures";
|
||||
type = "script";
|
||||
script = let
|
||||
binary =
|
||||
(ntlib.mkNixtest {
|
||||
modules = ntlib.autodiscover {dir = ./fixtures;};
|
||||
args = {inherit pkgs;};
|
||||
})
|
||||
+ "/bin/nixtests:run";
|
||||
in
|
||||
# sh
|
||||
''
|
||||
${ntlib.helpers.path [pkgs.gnugrep pkgs.mktemp]}
|
||||
${ntlib.helpers.scriptHelpers}
|
||||
|
||||
TMPDIR=$(tmpdir)
|
||||
run "${binary} --pure --junit=$TMPDIR/junit.xml"
|
||||
assert "$exit_code -eq 2" "should exit 2"
|
||||
assert "-f $TMPDIR/junit.xml" "should create junit.xml"
|
||||
assert_contains "$output" "executable file not found" "nix should not be found in pure mode"
|
||||
|
||||
${ntlib.helpers.pathAdd [pkgs.nix pkgs.coreutils]}
|
||||
run "${binary} --pure --junit=$TMPDIR/junit2.xml"
|
||||
assert "$exit_code -eq 2" "should exit 2"
|
||||
assert "-f $TMPDIR/junit2.xml" "should create junit2.xml"
|
||||
assert_not_contains "$output" "executable file not found" "nix should now exist"
|
||||
assert_contains "$output" "suite-one" "should contain suite-one"
|
||||
assert_contains "$output" "8/11 (1 SKIPPED)" "should be 8/11 total"
|
||||
assert_contains "$output" "ERROR" "should contain an error"
|
||||
assert_contains "$output" "SKIP" "should contain a skip"
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue