diff --git a/plugins/common/functions b/plugins/common/functions index f2645f448..f27755a45 100755 --- a/plugins/common/functions +++ b/plugins/common/functions @@ -789,7 +789,7 @@ docker_cleanup() { declare APP="$1" FORCE_CLEANUP="$2" local DOKKU_APP_SKIP_CLEANUP - "$PLUGIN_CORE_AVAILABLE_PATH/common/common" --quiet docker-cleanup "$APP" + "$PLUGIN_CORE_AVAILABLE_PATH/common/common" --quiet docker-cleanup "$APP" "$FORCE_CLEANUP" } dokku_auth() { diff --git a/tests/unit/docker-cleanup-force-flag.bats b/tests/unit/docker-cleanup-force-flag.bats new file mode 100644 index 000000000..86bb692d2 --- /dev/null +++ b/tests/unit/docker-cleanup-force-flag.bats @@ -0,0 +1,27 @@ +#!/usr/bin/env bats + +setup() { + DOKKU_TEST_TMPDIR="$(mktemp -d)" + export DOKKU_TEST_ARGS_FILE="$DOKKU_TEST_TMPDIR/args" + export PLUGIN_CORE_AVAILABLE_PATH="$DOKKU_TEST_TMPDIR/plugin" + + mkdir -p "$PLUGIN_CORE_AVAILABLE_PATH/common" + cat >"$PLUGIN_CORE_AVAILABLE_PATH/common/common" <<'EOF' +#!/usr/bin/env bash +printf '%s\n' "$@" > "$DOKKU_TEST_ARGS_FILE" +EOF + chmod +x "$PLUGIN_CORE_AVAILABLE_PATH/common/common" + + source "$BATS_TEST_DIRNAME/../../plugins/common/functions" +} + +teardown() { + rm -rf "$DOKKU_TEST_TMPDIR" +} + +@test "docker_cleanup forwards the manual force flag to the core command" { + run docker_cleanup --global true + + [ "$status" -eq 0 ] + [ "$(cat "$DOKKU_TEST_ARGS_FILE")" = $'--quiet\ndocker-cleanup\n--global\ntrue' ] +}