Files
dokku/tests/unit/10_apps.bats
Jose Diaz-Gonzalez 81542ef089 feat: do not clone URLS and VHOST files to new apps
This follows the heroku pattern of ensuring applications are "freshly" created, routing-wise.

Closes #2740
2018-12-28 18:10:22 -05:00

254 lines
6.4 KiB
Bash
Executable File

#!/usr/bin/env bats
load test_helper
setup () {
global_setup
}
teardown () {
global_teardown
}
@test "(apps) apps:create" {
run /bin/bash -c "dokku apps:create $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:list | grep $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_output $TEST_APP
destroy_app
run /bin/bash -c "dokku apps:create 1994testapp"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:create testapp:latest"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku apps:create testApp:latest"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku apps:create TestApp"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku --app $TEST_APP apps:create"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:list | grep $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_output $TEST_APP
destroy_app
}
@test "(apps) app autocreate disabled" {
run /bin/bash -c "dokku config:set --no-restart --global DOKKU_DISABLE_APP_AUTOCREATION='true'"
echo "output: $output"
echo "status: $status"
assert_success
run deploy_app
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku config:unset --no-restart --global DOKKU_DISABLE_APP_AUTOCREATION"
}
@test "(apps) apps:destroy" {
create_app
run /bin/bash -c "dokku --force apps:destroy $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
create_app
run /bin/bash -c "dokku --force --app $TEST_APP apps:destroy"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:rename" {
deploy_app
run /bin/bash -c "dokku apps:rename $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:list | grep $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_output ""
run /bin/bash -c "curl --silent --write-out '%{http_code}\n' `dokku url great-test-name` | grep 404"
echo "output: $output"
echo "status: $status"
assert_output ""
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:create $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:rename $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:rename with tls" {
setup_test_tls
deploy_app
run /bin/bash -c "dokku apps:rename $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:clone" {
deploy_app
run /bin/bash -c "dokku apps:clone $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:list | grep $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "curl --silent --write-out '%{http_code}\n' `dokku url great-test-name` | grep 404"
echo "output: $output"
echo "status: $status"
assert_output ""
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:clone --skip-deploy" {
deploy_app
run /bin/bash -c "dokku apps:clone --skip-deploy $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run [ -d /home/dokku/great-test-name/tls ]
assert_failure
run [ -f /home/dokku/great-test-name/URLS ]
assert_failure
run [ -f /home/dokku/great-test-name/VHOST ]
assert_failure
run /bin/bash -c "curl --silent --write-out '%{http_code}\n' `dokku url $TEST_APP` | grep 200"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "curl --silent --write-out '%{http_code}\n' `dokku url great-test-name` | grep 404"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "curl --silent --write-out '%{http_code}\n' `dokku url $TEST_APP` | grep 200"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:clone --ignore-existing" {
deploy_app
run /bin/bash -c "dokku apps:create great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:clone --ignore-existing $TEST_APP great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku --force apps:destroy great-test-name"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:exists" {
run /bin/bash -c "dokku apps:exists $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_failure
create_app
run /bin/bash -c "dokku apps:exists $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku --force apps:destroy $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(apps) apps:lock/locked/unlock" {
create_app
run /bin/bash -c "dokku apps:report $TEST_APP --locked"
echo "output: $output"
echo "status: $status"
assert_output "false"
run /bin/bash -c "dokku apps:locked $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku apps:lock $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:report $TEST_APP --locked"
echo "output: $output"
echo "status: $status"
assert_output "true"
run /bin/bash -c "dokku apps:locked $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:unlock $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku apps:report $TEST_APP --locked"
echo "output: $output"
echo "status: $status"
assert_output "false"
destroy_app
}