31 lines
1.0 KiB
Rust
31 lines
1.0 KiB
Rust
//! 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<hero_supervisor_openrpc_client::Job, Box<dyn std::error::Error>> {
|
|
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,
|
|
}
|
|
} |