diff --git a/pkgs/by-name/ba/bats/package.nix b/pkgs/by-name/ba/bats/package.nix index 0a6232cde99c..6220ecf5698c 100644 --- a/pkgs/by-name/ba/bats/package.nix +++ b/pkgs/by-name/ba/bats/package.nix @@ -18,6 +18,7 @@ symlinkJoin, makeWrapper, runCommand, + writeText, doInstallCheck ? true, # packages that use bats (for update testing) bash-preexec, @@ -151,59 +152,58 @@ resholve.mkDerivation rec { wrapProgram "$out/bin/bats" \ --suffix BATS_LIB_PATH : "$out/share/bats" ''; + + inherit meta; }; passthru.tests = { libraries = - runCommand "${bats.name}-with-libraries-test" - { - testScript = '' - setup() { - bats_load_library bats-support - bats_load_library bats-assert - bats_load_library bats-file - bats_load_library bats-detik/detik.bash + let + testScript = writeText "bats-libraries-test-script" '' + setup() { + bats_load_library bats-support + bats_load_library bats-assert + bats_load_library bats-file + bats_load_library bats-detik/detik.bash - bats_require_minimum_version 1.5.0 + bats_require_minimum_version 1.5.0 - TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')" - } + TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')" + } - teardown() { - temp_del "$TEST_TEMP_DIR" - } + teardown() { + temp_del "$TEST_TEMP_DIR" + } - @test echo_hi { - run -0 echo hi - assert_output "hi" - } + @test echo_hi { + run -0 echo hi + assert_output "hi" + } - @test cp_failure { - run ! cp - assert_line --index 0 "cp: missing file operand" - assert_line --index 1 "Try 'cp --help' for more information." - } + @test cp_failure { + run ! cp + assert_line --index 0 "cp: missing file operand" + assert_line --index 1 "Try 'cp --help' for more information." + } - @test file_exists { - echo "hi" > "$TEST_TEMP_DIR/hello.txt" - assert_file_exist "$TEST_TEMP_DIR/hello.txt" - run cat "$TEST_TEMP_DIR/hello.txt" - assert_output "hi" - } - ''; - passAsFile = [ "testScript" ]; - } - '' - ${ - bats.withLibraries (p: [ - p.bats-support - p.bats-assert - p.bats-file - p.bats-detik - ]) - }/bin/bats "$testScriptPath" - touch "$out" + @test file_exists { + echo "hi" > "$TEST_TEMP_DIR/hello.txt" + assert_file_exist "$TEST_TEMP_DIR/hello.txt" + run cat "$TEST_TEMP_DIR/hello.txt" + assert_output "hi" + } ''; + batsWithLibraries = bats.withLibraries (p: [ + p.bats-support + p.bats-assert + p.bats-file + p.bats-detik + ]); + in + runCommand "${bats.name}-with-libraries-test" { } '' + ${lib.getExe batsWithLibraries} "${testScript}" + touch "$out" + ''; upstream = bats.unresholved.overrideAttrs (old: { name = "${bats.name}-tests";