diff --git a/tests/unit/cron.bats b/tests/unit/cron.bats index 66cac2ae2..b31a5018c 100644 --- a/tests/unit/cron.bats +++ b/tests/unit/cron.bats @@ -43,6 +43,52 @@ teardown() { assert_failure } +@test "(cron) creation" { + run deploy_app python dokku@dokku.me:$TEST_APP + 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_failure + + run deploy_app python dokku@dokku.me:$TEST_APP template_cron_file_valid + 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 "python task.py schedule" + + run deploy_app python dokku@dokku.me:$TEST_APP template_cron_file_valid_short + 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 "python task.py daily" + + run deploy_app python dokku@dokku.me:$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 "python task.py first" + assert_output_contains "python task.py second" +} + template_cron_file_invalid() { local APP="$1" @@ -93,3 +139,58 @@ template_cron_file_invalid_schedule_seconds() { } EOF } + +template_cron_file_valid() { + local APP="$1" + local APP_REPO_DIR="$2" + [[ -z "$APP" ]] && local APP="$TEST_APP" + echo "injecting valid cron app.json -> $APP_REPO_DIR/app.json" + cat <"$APP_REPO_DIR/app.json" +{ + "cron": [ + { + "command": "python task.py schedule", + "schedule": "5 5 5 5 5" + } + ] +} +EOF +} + +template_cron_file_valid_short() { + local APP="$1" + local APP_REPO_DIR="$2" + [[ -z "$APP" ]] && local APP="$TEST_APP" + echo "injecting valid cron app.json -> $APP_REPO_DIR/app.json" + cat <"$APP_REPO_DIR/app.json" +{ + "cron": [ + { + "command": "python task.py daily", + "schedule": "@daily" + } + ] +} +EOF +} + +template_cron_file_valid_multiple() { + local APP="$1" + local APP_REPO_DIR="$2" + [[ -z "$APP" ]] && local APP="$TEST_APP" + echo "injecting valid cron app.json -> $APP_REPO_DIR/app.json" + cat <"$APP_REPO_DIR/app.json" +{ + "cron": [ + { + "command": "python task.py first", + "schedule": "5 5 5 5 5" + }, + { + "command": "python task.py second", + "schedule": "@daily" + } + ] +} +EOF +}