diff --git a/setup.sh b/setup.sh index 188a9f2a..bfdc9da4 100755 --- a/setup.sh +++ b/setup.sh @@ -56,7 +56,7 @@ SUBCOMMANDS: $0 debug fetchmail $0 debug show-mail-logs $0 debug inspect - $0 debug login + $0 debug login " exit 1 } @@ -156,7 +156,12 @@ case $1 in _inspect ;; login) - _docker_container /bin/bash + shift + if [ -z "$1" ]; then + _docker_container /bin/bash + else + _docker_container /bin/bash -c "$@" + fi ;; *) _usage diff --git a/test/tests.bats b/test/tests.bats index 8be8f894..d0f9049b 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -633,3 +633,66 @@ run docker exec mail_pop3 /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/32'" [ "$status" -eq 0 ] } + +# +# setup.sh +# + +# CLI interface +@test "checking setup.sh: Without arguments: status 1, show help text" { + run ./setup.sh + [ "$status" -eq 1 ] + [ "${lines[0]}" = "Usage: ./setup.sh [-i IMAGE_NAME] [-c CONTAINER_NAME] [args]" ] +} +@test "checking setup.sh: Wrong arguments" { + run ./setup.sh lol troll + [ "$status" -eq 1 ] + [ "${lines[0]}" = "Usage: ./setup.sh [-i IMAGE_NAME] [-c CONTAINER_NAME] [args]" ] +} + +# email +@test "checking setup.sh: setup.sh email add " { + run ./setup.sh -c mail email add lorem@impsum.org dolorsit + [ "$status" -eq 0 ] + value=$(cat ./config/postfix-accounts.cf | grep lorem@impsum.org | awk -F '|' '{print $1}') + [ "$value" = "lorem@impsum.org" ] +} +@test "checking setup.sh: setup.sh email list" { + run ./setup.sh -c mail email list + [ "$status" -eq 0 ] +} +@test "checking setup.sh: setup.sh email del" { + run ./setup.sh -c mail email del lorem@impsum.org + [ "$status" -eq 0 ] + run value=$(cat ./config/postfix-accounts.cf | grep lorem@impsum.org) + [ -z "$value" ] +} + +# config +@test "checking setup.sh: setup.sh config dkim" { + run ./setup.sh -c mail config dkim + [ "$status" -eq 0 ] +} +# TODO: To create a test generate-ssl-certificate must be non interactive +#@test "checking setup.sh: setup.sh config ssl" { +# run ./setup.sh -c mail_ssl config ssl +# [ "$status" -eq 0 ] +#} + +# debug +@test "checking setup.sh: setup.sh debug fetchmail" { + run ./setup.sh -c mail debug fetchmail + [ "$status" -eq 5 ] +# TODO: Fix output check +# [ "$output" = "fetchmail: no mailservers have been specified." ] +} +@test "checking setup.sh: setup.sh debug inspect" { + run ./setup.sh -c mail debug inspect + [ "$status" -eq 0 ] + [ "${lines[0]}" = "Image: tvial/docker-mailserver:testing" ] + [ "${lines[1]}" = "Container: mail" ] +} +@test "checking setup.sh: setup.sh debug login ls" { + run ./setup.sh -c mail debug login ls + [ "$status" -eq 0 ] +}