mirror of
https://github.com/dokku/dokku.git
synced 2026-02-24 04:00:36 +01:00
199 lines
4.9 KiB
Bash
199 lines
4.9 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
create_app
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app
|
|
global_teardown
|
|
}
|
|
|
|
@test "(ps:rebuild) old app name" {
|
|
run /bin/bash -c "dokku --force apps:destroy $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
mkdir -p /home/dokku/test_app
|
|
sudo chown -R dokku:dokku /home/dokku/test_app
|
|
|
|
run /bin/bash -c "dokku plugin:trigger post-create test_app"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku git:sync --build test_app https://github.com/dokku/smoke-test-app.git"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:rebuild test_app"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku apps:rename test_app $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
}
|
|
|
|
@test "(ps:scale) console-only app" {
|
|
run /bin/bash -c "dokku ps:scale $TEST_APP web=0 console=0"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:report $TEST_APP --deployed"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "false"
|
|
|
|
run deploy_app python-console-only
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:report $TEST_APP --deployed"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "true"
|
|
|
|
run /bin/bash -c "dokku run $TEST_APP console"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Hello world!"
|
|
|
|
run /bin/bash -c "dokku run $TEST_APP printenv FOO"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku config:set $TEST_APP FOO=bar"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Releasing $TEST_APP"
|
|
|
|
run /bin/bash -c "dokku run $TEST_APP printenv FOO"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "bar"
|
|
}
|
|
|
|
@test "(ps:set) procfile-path" {
|
|
run deploy_app python
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Arg: web.py"
|
|
assert_output_contains "Arg: first.Procfile"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:set $TEST_APP procfile-path nonexistent-procfile"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "Could not start due to" 2
|
|
|
|
run /bin/bash -c "dokku ps:set $TEST_APP procfile-path second.Procfile"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains 'SECRET_KEY:' 0
|
|
|
|
run /bin/bash -c "dokku logs $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Arg: web.py"
|
|
assert_output_contains "Arg: second.Procfile"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:set $TEST_APP procfile-path"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains 'SECRET_KEY:'
|
|
|
|
run /bin/bash -c "dokku logs $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Arg: web.py"
|
|
assert_output_contains "Arg: first.Procfile"
|
|
assert_success
|
|
}
|
|
|
|
@test "(ps:scale) remove zerod processes" {
|
|
run /bin/bash -c "dokku builder-herokuish:set $TEST_APP allowed true"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run deploy_app python
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:scale $TEST_APP worker=1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet ps:scale $TEST_APP"
|
|
output=$(echo "$output" | tr -s " ")
|
|
echo "output: ($output)"
|
|
assert_output $'cron: 0\ncustom: 0\nrelease: 0\ntask: 0\nweb: 1\nworker: 1'
|
|
|
|
run /bin/bash -c "dokku ps:scale $TEST_APP worker=0"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet ps:scale $TEST_APP"
|
|
output=$(echo "$output" | tr -s " ")
|
|
echo "output: ($output)"
|
|
assert_output $'cron: 0\ncustom: 0\nrelease: 0\ntask: 0\nweb: 1\nworker: 0'
|
|
|
|
run /bin/bash -c "dokku ps:set $TEST_APP procfile-path second.Procfile"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet ps:scale $TEST_APP"
|
|
output=$(echo "$output" | tr -s " ")
|
|
echo "output: ($output)"
|
|
assert_output 'web: 1'
|
|
}
|