//! Integration tests for the job API //! //! These tests validate the complete job lifecycle using a real supervisor instance. //! They require Redis and a running supervisor to execute properly. use hero_supervisor_openrpc_client::{SupervisorClient, JobBuilder, JobResult}; use std::time::Duration; use tokio::time::sleep; use uuid::Uuid; /// Test helper to create a unique job for testing fn create_test_job(context: &str) -> Result> { JobBuilder::new() .caller_id("integration_test") .context_id(context) .payload("echo 'Test job output'") .executor("osis") .runner("osis_runner_1") .timeout(30) .env_var("TEST_VAR", "test_value") .build() .map_err(|e| e.into()) } /// Test helper to check if supervisor is available async fn is_supervisor_available() -> bool { match SupervisorClient::new("http://localhost:3030") { Ok(client) => client.discover().await.is_ok(), Err(_) => false, } }