mirror of
https://github.com/dokku/dokku.git
synced 2026-02-23 19:50:34 +01:00
When developing Dokku, it is useful to use a real domain to test actual functionality. This is impossible if the domain is hardcoded to dokku.me in testing.
84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
#!/usr/bin/env bats
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
create_app
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app
|
|
global_teardown
|
|
}
|
|
|
|
@test "(app-json) persist scale" {
|
|
local CUSTOM_TMP=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX")
|
|
trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM
|
|
|
|
CUSTOM_TMP="$CUSTOM_TMP" run deploy_app python "dokku@$DOKKU_DOMAIN:$TEST_APP" persist_scale_callback_a
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet ps:scale $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "web: 1"
|
|
assert_output_contains "worker: 1"
|
|
assert_output_contains "cron: 0" 0
|
|
|
|
run persist_scale_callback_b "$TEST_APP" "$CUSTOM_TMP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run git -C "$CUSTOM_TMP" add app.json Procfile
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run git -C "$CUSTOM_TMP" commit -m 'Update scaling parameters'
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run git -C "$CUSTOM_TMP" push target master:master
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet ps:scale $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "web: 1"
|
|
assert_output_contains "worker: 1" 0
|
|
assert_output_contains "worker: 0" 0
|
|
assert_output_contains "cron: 1" 1
|
|
}
|
|
|
|
persist_scale_callback_a() {
|
|
local APP="$1"
|
|
local APP_REPO_DIR="$2"
|
|
[[ -z "$APP" ]] && local APP="$TEST_APP"
|
|
|
|
rm "$APP_REPO_DIR/Procfile"
|
|
touch "$APP_REPO_DIR/Procfile"
|
|
echo "web: python3 web.py" >>"$APP_REPO_DIR/Procfile"
|
|
echo "worker: python3 worker.py" >>"$APP_REPO_DIR/Procfile"
|
|
mv "$APP_REPO_DIR/app-5205a.json" "$APP_REPO_DIR/app.json"
|
|
}
|
|
|
|
persist_scale_callback_b() {
|
|
local APP="$1"
|
|
local APP_REPO_DIR="$2"
|
|
[[ -z "$APP" ]] && local APP="$TEST_APP"
|
|
|
|
rm "$APP_REPO_DIR/Procfile"
|
|
touch "$APP_REPO_DIR/Procfile"
|
|
echo "web: python3 web.py" >>"$APP_REPO_DIR/Procfile"
|
|
echo "cron: python3 worker.py" >>"$APP_REPO_DIR/Procfile"
|
|
mv "$APP_REPO_DIR/app-5205b.json" "$APP_REPO_DIR/app.json"
|
|
}
|