From 5d212f319500e0dc2f8b36af0e2964f05c9a4436 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 8 May 2026 01:34:05 -0400 Subject: [PATCH] test: use BATS_TEST_TMPDIR in core-post-extract regression tests The previous form set `trap "rm -rf '$TMP_DIR'" RETURN` inside the test, but bats propagates `RETURN` traps to nested function calls, so the trap fired on the first `assert_success` and removed the work directory before the trigger script ran. Switching to bats's per-test `BATS_TEST_TMPDIR` removes the trap entirely and lets bats handle cleanup. --- tests/unit/builder-dockerfile.bats | 11 ++++------- tests/unit/builder-lambda.bats | 11 ++++------- tests/unit/builder-nixpacks.bats | 11 ++++------- tests/unit/builder-pack.bats | 11 ++++------- tests/unit/builder-railpack.bats | 11 ++++------- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/tests/unit/builder-dockerfile.bats b/tests/unit/builder-dockerfile.bats index c2b41f6a2..d6d9b682d 100644 --- a/tests/unit/builder-dockerfile.bats +++ b/tests/unit/builder-dockerfile.bats @@ -156,25 +156,22 @@ EOF } @test "(builder-dockerfile) core-post-extract renames the configured dockerfile" { - local TMP_DIR - TMP_DIR="$(mktemp -d "/tmp/dokku-test-builder-dockerfile.XXXXXX")" - trap "rm -rf '$TMP_DIR'" RETURN - echo "FROM scratch" >"$TMP_DIR/second.Dockerfile" + echo "FROM scratch" >"$BATS_TEST_TMPDIR/second.Dockerfile" run /bin/bash -c "dokku builder-dockerfile:set $TEST_APP dockerfile-path second.Dockerfile" echo "output: $output" echo "status: $status" assert_success - run_plugin_script builder-dockerfile core-post-extract "$TEST_APP" "$TMP_DIR" HEAD + run_plugin_script builder-dockerfile core-post-extract "$TEST_APP" "$BATS_TEST_TMPDIR" HEAD echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "test -f $TMP_DIR/Dockerfile" + run /bin/bash -c "test -f $BATS_TEST_TMPDIR/Dockerfile" assert_success - run /bin/bash -c "test ! -e $TMP_DIR/second.Dockerfile" + run /bin/bash -c "test ! -e $BATS_TEST_TMPDIR/second.Dockerfile" assert_success } diff --git a/tests/unit/builder-lambda.bats b/tests/unit/builder-lambda.bats index fa97fc977..e2c0933b5 100644 --- a/tests/unit/builder-lambda.bats +++ b/tests/unit/builder-lambda.bats @@ -153,25 +153,22 @@ teardown() { } @test "(builder-lambda) core-post-extract renames the configured lambda.yml" { - local TMP_DIR - TMP_DIR="$(mktemp -d "/tmp/dokku-test-builder-lambda.XXXXXX")" - trap "rm -rf '$TMP_DIR'" RETURN - echo "---" >"$TMP_DIR/lambda2.yml" + echo "---" >"$BATS_TEST_TMPDIR/lambda2.yml" run /bin/bash -c "dokku builder-lambda:set $TEST_APP lambdayml-path lambda2.yml" echo "output: $output" echo "status: $status" assert_success - run_plugin_script builder-lambda core-post-extract "$TEST_APP" "$TMP_DIR" HEAD + run_plugin_script builder-lambda core-post-extract "$TEST_APP" "$BATS_TEST_TMPDIR" HEAD echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "test -f $TMP_DIR/lambda.yml" + run /bin/bash -c "test -f $BATS_TEST_TMPDIR/lambda.yml" assert_success - run /bin/bash -c "test ! -e $TMP_DIR/lambda2.yml" + run /bin/bash -c "test ! -e $BATS_TEST_TMPDIR/lambda2.yml" assert_success } diff --git a/tests/unit/builder-nixpacks.bats b/tests/unit/builder-nixpacks.bats index 3f5e6e14e..56f4cf20f 100644 --- a/tests/unit/builder-nixpacks.bats +++ b/tests/unit/builder-nixpacks.bats @@ -132,25 +132,22 @@ teardown() { } @test "(builder-nixpacks) core-post-extract renames the configured nixpacks.toml" { - local TMP_DIR - TMP_DIR="$(mktemp -d "/tmp/dokku-test-builder-nixpacks.XXXXXX")" - trap "rm -rf '$TMP_DIR'" RETURN - echo "" >"$TMP_DIR/nixpacks.alt.toml" + echo "" >"$BATS_TEST_TMPDIR/nixpacks.alt.toml" run /bin/bash -c "dokku builder-nixpacks:set $TEST_APP nixpackstoml-path nixpacks.alt.toml" echo "output: $output" echo "status: $status" assert_success - run_plugin_script builder-nixpacks core-post-extract "$TEST_APP" "$TMP_DIR" HEAD + run_plugin_script builder-nixpacks core-post-extract "$TEST_APP" "$BATS_TEST_TMPDIR" HEAD echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "test -f $TMP_DIR/nixpacks.toml" + run /bin/bash -c "test -f $BATS_TEST_TMPDIR/nixpacks.toml" assert_success - run /bin/bash -c "test ! -e $TMP_DIR/nixpacks.alt.toml" + run /bin/bash -c "test ! -e $BATS_TEST_TMPDIR/nixpacks.alt.toml" assert_success } diff --git a/tests/unit/builder-pack.bats b/tests/unit/builder-pack.bats index 1a9bf5451..9cc3a6a05 100644 --- a/tests/unit/builder-pack.bats +++ b/tests/unit/builder-pack.bats @@ -229,25 +229,22 @@ teardown() { } @test "(builder-pack) core-post-extract renames the configured project.toml" { - local TMP_DIR - TMP_DIR="$(mktemp -d "/tmp/dokku-test-builder-pack.XXXXXX")" - trap "rm -rf '$TMP_DIR'" RETURN - echo "" >"$TMP_DIR/project2.toml" + echo "" >"$BATS_TEST_TMPDIR/project2.toml" run /bin/bash -c "dokku builder-pack:set $TEST_APP projecttoml-path project2.toml" echo "output: $output" echo "status: $status" assert_success - run_plugin_script builder-pack core-post-extract "$TEST_APP" "$TMP_DIR" HEAD + run_plugin_script builder-pack core-post-extract "$TEST_APP" "$BATS_TEST_TMPDIR" HEAD echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "test -f $TMP_DIR/project.toml" + run /bin/bash -c "test -f $BATS_TEST_TMPDIR/project.toml" assert_success - run /bin/bash -c "test ! -e $TMP_DIR/project2.toml" + run /bin/bash -c "test ! -e $BATS_TEST_TMPDIR/project2.toml" assert_success } diff --git a/tests/unit/builder-railpack.bats b/tests/unit/builder-railpack.bats index a6e99e906..597283111 100644 --- a/tests/unit/builder-railpack.bats +++ b/tests/unit/builder-railpack.bats @@ -143,25 +143,22 @@ teardown() { } @test "(builder-railpack) core-post-extract renames the configured railpack.json" { - local TMP_DIR - TMP_DIR="$(mktemp -d "/tmp/dokku-test-builder-railpack.XXXXXX")" - trap "rm -rf '$TMP_DIR'" RETURN - echo "{}" >"$TMP_DIR/railpack.alt.json" + echo "{}" >"$BATS_TEST_TMPDIR/railpack.alt.json" run /bin/bash -c "dokku builder-railpack:set $TEST_APP railpackjson-path railpack.alt.json" echo "output: $output" echo "status: $status" assert_success - run_plugin_script builder-railpack core-post-extract "$TEST_APP" "$TMP_DIR" HEAD + run_plugin_script builder-railpack core-post-extract "$TEST_APP" "$BATS_TEST_TMPDIR" HEAD echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "test -f $TMP_DIR/railpack.json" + run /bin/bash -c "test -f $BATS_TEST_TMPDIR/railpack.json" assert_success - run /bin/bash -c "test ! -e $TMP_DIR/railpack.alt.json" + run /bin/bash -c "test ! -e $BATS_TEST_TMPDIR/railpack.alt.json" assert_success }