From 8ba6ce94fce678f97b7ee6868d5cfb00fd62c642 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 10 Nov 2025 02:00:14 -0500 Subject: [PATCH] test: add tests for cron suspend and resume commands --- tests/unit/cron.bats | 68 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/tests/unit/cron.bats b/tests/unit/cron.bats index 09bb3b6b4..5c0b1345d 100644 --- a/tests/unit/cron.bats +++ b/tests/unit/cron.bats @@ -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"