mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
204 lines
6.2 KiB
Bash
204 lines
6.2 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
}
|
|
|
|
teardown() {
|
|
global_teardown
|
|
}
|
|
|
|
@test "(apps) apps:clone" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
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_not_exists
|
|
run /bin/bash -c "dokku --force apps:destroy great-test-name"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
}
|
|
|
|
@test "(apps) apps:clone (no app)" {
|
|
run /bin/bash -c "dokku apps:create $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku buildpacks:add $TEST_APP https://github.com/heroku/heroku-buildpack-ruby.git"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku git:set $TEST_APP deploy-branch SOME_BRANCH_NAME"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku network:set $TEST_APP attach-post-create test-network"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP bind-address-ipv4 127.0.0.1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku resource:limit --memory 100 $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku scheduler-docker-local:set $TEST_APP disable-chown true"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
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 "dokku buildpacks:report great-test-name --buildpacks-list"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "https://github.com/heroku/heroku-buildpack-ruby.git"
|
|
run /bin/bash -c "dokku domains:report great-test-name --domains-app-vhosts"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "great-test-name.$DOKKU_DOMAIN"
|
|
run /bin/bash -c "dokku git:report great-test-name --git-deploy-branch"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "SOME_BRANCH_NAME"
|
|
run /bin/bash -c "dokku network:report great-test-name --network-attach-post-create"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "test-network"
|
|
run /bin/bash -c "dokku nginx:report great-test-name --nginx-bind-address-ipv4"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "127.0.0.1"
|
|
run /bin/bash -c "dokku resource:report great-test-name --resource-_default_.limit.memory"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "100"
|
|
run /bin/bash -c "dokku scheduler-docker-local:report great-test-name --scheduler-docker-local-disable-chown"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "true"
|
|
|
|
run /bin/bash -c "dokku --force apps:destroy great-test-name"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
}
|
|
|
|
@test "(apps) apps:clone ssl-app" {
|
|
skip "this test always failed and requires changes in dokku to support detected vs specified functionality"
|
|
run /bin/bash -c "dokku apps:create $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku ports:set $TEST_APP https:443:5000"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku config:set --no-restart $TEST_APP DOKKU_PROXY_SSL_PORT=443"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku apps:clone $TEST_APP app-without-ssl"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
run /bin/bash -c "dokku --quiet ports:list app-without-ssl | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output "http 80 5000"
|
|
run /bin/bash -c "dokku config:get app-without-ssl DOKKU_PROXY_SSL_PORT"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_not_exists
|
|
run /bin/bash -c "dokku --force apps:destroy app-without-ssl"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
}
|
|
|
|
@test "(apps) apps:clone --skip-deploy" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
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/VHOST ]
|
|
assert_success
|
|
run /bin/bash -c "dokku url great-test-name"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "http://great-test-name.$DOKKU_DOMAIN"
|
|
run /bin/bash -c "dokku url $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "http://$TEST_APP.$DOKKU_DOMAIN"
|
|
assert_http_localhost_response "http" "$TEST_APP.$DOKKU_DOMAIN" "80" "/hello"
|
|
assert_http_localhost_response "http" "great-test-name.dokku.me" "80" "/hello" "" "404"
|
|
run /bin/bash -c "dokku --force apps:destroy great-test-name"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_http_localhost_response "http" "$TEST_APP.$DOKKU_DOMAIN" "80" "/hello"
|
|
}
|
|
|
|
@test "(apps) apps:clone --ignore-existing" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
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
|
|
}
|