diff --git a/tests/unit/20_nginx-vhosts_1.bats b/tests/unit/20_nginx-vhosts_1.bats index 17c576ed2..3b6571e97 100644 --- a/tests/unit/20_nginx-vhosts_1.bats +++ b/tests/unit/20_nginx-vhosts_1.bats @@ -10,6 +10,7 @@ setup() { } teardown() { + detach_delete_network destroy_app [[ -f "$DOKKU_ROOT/VHOST.bak" ]] && mv "$DOKKU_ROOT/VHOST.bak" "$DOKKU_ROOT/VHOST" && chown dokku:dokku "$DOKKU_ROOT/VHOST" [[ -f "$DOKKU_ROOT/HOSTNAME.bak" ]] && mv "$DOKKU_ROOT/HOSTNAME.bak" "$DOKKU_ROOT/HOSTNAME" && chown dokku:dokku "$DOKKU_ROOT/HOSTNAME" @@ -130,3 +131,13 @@ teardown() { assert_http_success http://www.test.app.dokku.me:3003 } + +@test "(nginx-vhosts) nginx:build-config (multiple networks)" { + deploy_app + + create_attach_network + run dokku nginx:build-config "$TEST_APP" + echo "output: "$output + echo "status: "$status + assert_success +} diff --git a/tests/unit/test_helper.bash b/tests/unit/test_helper.bash index ab4dbb5b5..247697578 100644 --- a/tests/unit/test_helper.bash +++ b/tests/unit/test_helper.bash @@ -11,6 +11,7 @@ PLUGIN_CORE_AVAILABLE_PATH=${PLUGIN_CORE_AVAILABLE_PATH:="$PLUGIN_CORE_PATH/avai CUSTOM_TEMPLATE_SSL_DOMAIN=customssltemplate.dokku.me UUID=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) TEST_APP="rdmtestapp-${UUID}" +TEST_NETWORK="test-network-${UUID}" SKIPPED_TEST_ERR_MSG="previous test failed! skipping remaining tests..." # global setup() and teardown() @@ -378,3 +379,45 @@ build_nginx_config() { dokku domains:setup "$TEST_APP" dokku nginx:build-config "$TEST_APP" } + +create_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -z "$NETWORK" ]] && docker network create "$NETWORK_NAME" +} + +attach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -n "$NETWORK" ]] && docker network connect "$NETWORK_NAME" "${TEST_APP}.web.1" +} + +create_attach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + create_network "$NETWORK_NAME" + attach_network "$NETWORK_NAME" +} + +delete_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -n "$NETWORK" ]] && docker network rm "$NETWORK_NAME" +} + +detach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -z "$NETWORK" ]] && docker network disconnect "$NETWORK_NAME" "${TEST_APP}.web.1" +} + +detach_delete_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + detach_network "$NETWORK_NAME" + delete_network "$NETWORK_NAME" +}