test: add tests for cron suspend and resume commands

This commit is contained in:
Jose Diaz-Gonzalez
2025-11-10 02:00:14 -05:00
parent 4cc2dc7844
commit 8ba6ce94fc

View File

@@ -235,6 +235,74 @@ teardown() {
assert_output "['task.py', 'schedule', 'now']"
}
@test "(cron) cron:suspend cron:resume" {
run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP template_cron_file_valid_multiple
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "cat /var/spool/cron/crontabs/dokku"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "python3 task.py first"
assert_output_contains "python3 task.py second"
cron_id="$(dokku cron:list $TEST_APP --format json | jq -r '.[0].id')"
run /bin/bash -c "echo $cron_id"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_exists
first_command="$(dokku cron:list $TEST_APP --format json | jq -r '.[0].command')"
run /bin/bash -c "echo $first_command"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_exists
run /bin/bash -c "dokku cron:report $TEST_APP --cron-maintenance-$cron_id"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "dokku cron:suspend $TEST_APP $cron_id"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku cron:report $TEST_APP --cron-maintenance-$cron_id"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "true"
run /bin/bash -c "cat /var/spool/cron/crontabs/dokku"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "python3 task.py first" 0
assert_output_contains "python3 task.py second"
run /bin/bash -c "dokku cron:resume $TEST_APP $cron_id"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku cron:report $TEST_APP --cron-maintenance-$cron_id"
echo "output: $output"
echo "status: $status"
assert_failure
run /bin/bash -c "cat /var/spool/cron/crontabs/dokku"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "python3 task.py first"
assert_output_contains "python3 task.py second"
}
template_cron_file_invalid() {
local APP="$1"
local APP_REPO_DIR="$2"