feat: add tests for remote parsing
This commit is contained in:
@@ -130,6 +130,16 @@ main() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
case "$CMD" in
|
case "$CMD" in
|
||||||
|
remote:show)
|
||||||
|
echo "dokku-app: $APP"
|
||||||
|
echo "dokku-git-remote: $DOKKU_GIT_REMOTE"
|
||||||
|
echo "dokku-host: $DOKKU_HOST"
|
||||||
|
echo "dokku-port: $DOKKU_PORT"
|
||||||
|
echo "dokku-remote-host: $DOKKU_REMOTE_HOST"
|
||||||
|
echo "dokku-ssh-user: dokku"
|
||||||
|
echo "dokku-constructed-remote: ssh://dokku@$DOKKU_REMOTE_HOST:$DOKKU_PORT/$APP"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
apps:create)
|
apps:create)
|
||||||
if [[ -z "$APP" ]] && [[ -z "$APP_ARG" ]]; then
|
if [[ -z "$APP" ]] && [[ -z "$APP_ARG" ]]; then
|
||||||
APP=$(fn-random-name)
|
APP=$(fn-random-name)
|
||||||
|
|||||||
@@ -24,6 +24,74 @@ teardown() {
|
|||||||
assert_exit_status 20
|
assert_exit_status 20
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "(client) remote:show" {
|
||||||
|
unset DOKKU_HOST
|
||||||
|
local DOKKU_APP_PATH=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX")
|
||||||
|
trap 'popd &>/dev/null || true; rm -rf "$DOKKU_APP_PATH"' INT TERM
|
||||||
|
|
||||||
|
setup_client_repo "$DOKKU_APP_PATH"
|
||||||
|
export DOKKU_APP_PATH="$DOKKU_APP_PATH"
|
||||||
|
|
||||||
|
# handle simple remote: dokku@example.com:app-name
|
||||||
|
run /bin/bash -c "git -C "$DOKKU_APP_PATH" remote add dokku 'dokku@example.com:$TEST_APP'"
|
||||||
|
echo "output: $output"
|
||||||
|
echo "status: $status"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run /bin/bash -c "DOKKU_APP_PATH=$DOKKU_APP_PATH ${BATS_TEST_DIRNAME}/../../contrib/dokku_client.sh remote:show"
|
||||||
|
echo "output: $output"
|
||||||
|
echo "status: $status"
|
||||||
|
assert_success
|
||||||
|
assert_output_contains "dokku-app: $TEST_APP"
|
||||||
|
assert_output_contains "dokku-git-remote: dokku"
|
||||||
|
assert_output_not_contains "dokku-host: example.com"
|
||||||
|
assert_output_not_contains "dokku-host: example.net"
|
||||||
|
assert_output_contains "dokku-host: "
|
||||||
|
assert_output_contains "dokku-port: 22"
|
||||||
|
assert_output_contains "dokku-remote-host: example.com"
|
||||||
|
assert_output_contains "dokku-ssh-user: dokku"
|
||||||
|
assert_output_contains "dokku-constructed-remote: ssh://dokku@example.com:22/$TEST_APP"
|
||||||
|
|
||||||
|
# handle custom DOKKU_HOST (no app name detected without --app flag)
|
||||||
|
export DOKKU_HOST="example.com"
|
||||||
|
run /bin/bash -c "DOKKU_HOST="example.net" DOKKU_APP_PATH=$DOKKU_APP_PATH ${BATS_TEST_DIRNAME}/../../contrib/dokku_client.sh remote:show"
|
||||||
|
echo "output: $output"
|
||||||
|
echo "status: $status"
|
||||||
|
assert_success
|
||||||
|
assert_output_not_contains "dokku-app: $TEST_APP"
|
||||||
|
assert_output_contains "dokku-git-remote: dokku"
|
||||||
|
assert_output_contains "dokku-host: example.net"
|
||||||
|
assert_output_contains "dokku-port: 22"
|
||||||
|
assert_output_contains "dokku-remote-host: example.net"
|
||||||
|
assert_output_contains "dokku-ssh-user: dokku"
|
||||||
|
assert_output_contains "dokku-constructed-remote: ssh://dokku@example.net:22/"
|
||||||
|
assert_output_not_contains "dokku-constructed-remote: ssh://dokku@example.net:22/$TEST_APP"
|
||||||
|
|
||||||
|
# handle custom DOKKU_HOST (app name detected with --app flag)
|
||||||
|
run /bin/bash -c "DOKKU_HOST="example.net" DOKKU_APP_PATH=$DOKKU_APP_PATH ${BATS_TEST_DIRNAME}/../../contrib/dokku_client.sh remote:show --app $TEST_APP"
|
||||||
|
echo "output: $output"
|
||||||
|
echo "status: $status"
|
||||||
|
assert_success
|
||||||
|
assert_output_contains "dokku-app: $TEST_APP"
|
||||||
|
assert_output_contains "dokku-git-remote: dokku"
|
||||||
|
assert_output_contains "dokku-host: example.net"
|
||||||
|
assert_output_contains "dokku-port: 22"
|
||||||
|
assert_output_contains "dokku-remote-host: example.net"
|
||||||
|
assert_output_contains "dokku-ssh-user: dokku"
|
||||||
|
assert_output_contains "dokku-constructed-remote: ssh://dokku@example.net:22/$TEST_APP"
|
||||||
|
|
||||||
|
# handle custom DOKKU_PORT
|
||||||
|
run /bin/bash -c "DOKKU_PORT=2222 DOKKU_APP_PATH=$DOKKU_APP_PATH ${BATS_TEST_DIRNAME}/../../contrib/dokku_client.sh remote:show"
|
||||||
|
echo "output: $output"
|
||||||
|
echo "status: $status"
|
||||||
|
assert_success
|
||||||
|
assert_output_contains "dokku-app: $TEST_APP"
|
||||||
|
assert_output_contains "dokku-git-remote: dokku"
|
||||||
|
assert_output_contains "dokku-host: example.com"
|
||||||
|
assert_output_contains "dokku-port: 2222"
|
||||||
|
assert_output_contains "dokku-remote-host: example.com"
|
||||||
|
assert_output_contains "dokku-ssh-user: dokku"
|
||||||
|
assert_output_contains "dokku-constructed-remote: ssh://dokku@example.com:2222/$TEST_APP"
|
||||||
@test "(client) no args should print help" {
|
@test "(client) no args should print help" {
|
||||||
# dokku container is not run with a TTY on GitHub Actions so we don't get normal output
|
# dokku container is not run with a TTY on GitHub Actions so we don't get normal output
|
||||||
# https://github.com/actions/runner/issues/241
|
# https://github.com/actions/runner/issues/241
|
||||||
|
|||||||
Reference in New Issue
Block a user