toContain('CREATE TABLE IF NOT EXISTS cron_worker_state'); expect($schema)->toContain('last_heartbeat_at'); expect($schema)->toContain('last_stale_run_count'); expect($worker)->toContain('CRON_WORKER_POLL_SECONDS'); expect($worker)->toContain('CRON_WORKER_HEARTBEAT_SECONDS'); expect($worker)->toContain('CRON_WORKER_RELEASE_TARGET_ID'); expect($worker)->toContain('markExpiredRunningRuns'); expect($worker)->toContain('runDue($this->source)'); expect($scheduler)->toContain('function markExpiredRunningRuns'); expect($scheduler)->toContain("r.status = 'timed_out'"); expect($scheduler)->toContain('s.current_run_id = NULL'); expect($cli)->toContain("case 'cron-worker'"); expect($cli)->toContain('new \\classes\\cron_worker()'); expect($route)->toContain('/superuser/cron/workers'); expect($route)->toContain('/superuser/cron/workers/deploy'); expect($route)->toContain('superuser_cron_view'); expect($route)->toContain('superuser_cron_manage'); expect($route)->toContain('superuser_coolify_manage'); expect($manager)->toContain("private const CRON_WORKER_APP = 'cron'"); expect($manager)->toContain("private const CRON_WORKER_START_COMMAND = 'php index.php run cron-worker'"); expect($manager)->toContain('deployCronWorkerAfterApiDeployment'); expect($manager)->toContain('cron_worker_deploy_failed'); expect($manager)->toContain('auto_deploy = 0'); });