Files
dokku/tests/unit/ps-general-2.bats
2025-12-25 18:34:39 -05:00

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'
}