diff --git a/tests/unit/builder-dockerfile.bats b/tests/unit/builder-dockerfile.bats index df1e02336..c2b41f6a2 100644 --- a/tests/unit/builder-dockerfile.bats +++ b/tests/unit/builder-dockerfile.bats @@ -166,7 +166,7 @@ EOF echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/builder-dockerfile/core-post-extract $TEST_APP $TMP_DIR HEAD" + run_plugin_script builder-dockerfile core-post-extract "$TEST_APP" "$TMP_DIR" HEAD echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/builder-lambda.bats b/tests/unit/builder-lambda.bats index afbbcda9b..fa97fc977 100644 --- a/tests/unit/builder-lambda.bats +++ b/tests/unit/builder-lambda.bats @@ -163,7 +163,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/builder-lambda/core-post-extract $TEST_APP $TMP_DIR HEAD" + run_plugin_script builder-lambda core-post-extract "$TEST_APP" "$TMP_DIR" HEAD echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/builder-nixpacks.bats b/tests/unit/builder-nixpacks.bats index 657fd3596..3f5e6e14e 100644 --- a/tests/unit/builder-nixpacks.bats +++ b/tests/unit/builder-nixpacks.bats @@ -142,7 +142,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/builder-nixpacks/core-post-extract $TEST_APP $TMP_DIR HEAD" + run_plugin_script builder-nixpacks core-post-extract "$TEST_APP" "$TMP_DIR" HEAD echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/builder-pack.bats b/tests/unit/builder-pack.bats index 0f335053d..1a9bf5451 100644 --- a/tests/unit/builder-pack.bats +++ b/tests/unit/builder-pack.bats @@ -239,7 +239,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/builder-pack/core-post-extract $TEST_APP $TMP_DIR HEAD" + run_plugin_script builder-pack core-post-extract "$TEST_APP" "$TMP_DIR" HEAD echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/builder-railpack.bats b/tests/unit/builder-railpack.bats index 82722be17..a6e99e906 100644 --- a/tests/unit/builder-railpack.bats +++ b/tests/unit/builder-railpack.bats @@ -153,7 +153,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/builder-railpack/core-post-extract $TEST_APP $TMP_DIR HEAD" + run_plugin_script builder-railpack core-post-extract "$TEST_APP" "$TMP_DIR" HEAD echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/resource_3.bats b/tests/unit/resource_3.bats index 687c1a512..174d2084d 100644 --- a/tests/unit/resource_3.bats +++ b/tests/unit/resource_3.bats @@ -23,7 +23,7 @@ teardown() { echo "status: $status" assert_output "256m" - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP herokuish < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish echo "output: $output" echo "status: $status" assert_success @@ -39,7 +39,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP dockerfile < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" dockerfile echo "output: $output" echo "status: $status" assert_success @@ -55,13 +55,13 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP pack < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" pack echo "output: $output" echo "status: $status" assert_success assert_output_not_contains "--memory" - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP lambda < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" lambda echo "output: $output" echo "status: $status" assert_success @@ -74,7 +74,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP herokuish < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish echo "output: $output" echo "status: $status" assert_success @@ -87,7 +87,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT plugn trigger docker-args-process-build $TEST_APP herokuish < /dev/null" + run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish echo "output: $output" echo "status: $status" assert_success @@ -101,7 +101,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT DOKKU_OMIT_RESOURCE_ARGS=1 plugn trigger docker-args-process-build $TEST_APP herokuish < /dev/null" + run_plugn_trigger DOKKU_OMIT_RESOURCE_ARGS=1 docker-args-process-build "$TEST_APP" herokuish echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/test_helper.bash b/tests/unit/test_helper.bash index 0ad154aea..60ba322e9 100644 --- a/tests/unit/test_helper.bash +++ b/tests/unit/test_helper.bash @@ -231,6 +231,29 @@ destroy_key() { rm -f /tmp/testkey* &>/dev/null || true } +# Run a plugn trigger with the env vars plugn needs, capturing $output/$status via bats `run`. +# Optional VAR=VAL pairs before are forwarded as extra env vars on the bash command line. +# Usage: run_plugn_trigger [VAR=VAL ...] +run_plugn_trigger() { + local extra_env="" + while [[ "$1" == *=* ]]; do + extra_env+=" $1" + shift + done + local TRIGGER="$1" + shift + run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT${extra_env} plugn trigger $TRIGGER $* < /dev/null" +} + +# Run a single plugin's trigger script directly so other plugins' handlers do not fire. +# Captures $output/$status via bats `run`. +# Usage: run_plugin_script +run_plugin_script() { + local PLUGIN_NAME="$1" SCRIPT_NAME="$2" + shift 2 + run /bin/bash -c "PLUGIN_PATH=$PLUGIN_PATH PLUGIN_AVAILABLE_PATH=$PLUGIN_AVAILABLE_PATH PLUGIN_ENABLED_PATH=$PLUGIN_ENABLED_PATH PLUGIN_CORE_AVAILABLE_PATH=$PLUGIN_CORE_AVAILABLE_PATH DOKKU_LIB_ROOT=$DOKKU_LIB_ROOT $PLUGIN_ENABLED_PATH/$PLUGIN_NAME/$SCRIPT_NAME $*" +} + check_urls() { local PATTERN="$1" run /bin/bash -c "dokku urls $TEST_APP | grep -E \"${PATTERN}\""