use ralph::config;
use ralph::contracts::{
AgentConfig, CiGateConfig, Config, GitRevertMode, Model, NotificationConfig, ProjectType,
QueueConfig, ReasoningEffort, Runner, RunnerRetryConfig, WebhookConfig,
};
use serial_test::serial;
use std::env;
use std::fs;
use std::path::PathBuf;
use tempfile::TempDir;
use test_support::env_lock;
mod test_support;
fn setup_ralph_dir(dir: &TempDir) -> PathBuf {
let ralph_dir = dir.path().join(".ralph");
fs::create_dir_all(&ralph_dir).expect("create .ralph dir");
ralph_dir
}
fn create_queue_jsonc(dir: &TempDir, content: &str) -> PathBuf {
let ralph_dir = setup_ralph_dir(dir);
let queue_path = ralph_dir.join("queue.jsonc");
fs::write(&queue_path, content).expect("write queue.jsonc");
queue_path
}
#[allow(dead_code)]
fn create_done_json(dir: &TempDir, content: &str) -> PathBuf {
let ralph_dir = setup_ralph_dir(dir);
let done_path = ralph_dir.join("done.json");
fs::write(&done_path, content).expect("write done.json");
done_path
}
#[allow(dead_code)]
fn create_done_jsonc(dir: &TempDir, content: &str) -> PathBuf {
let ralph_dir = setup_ralph_dir(dir);
let done_path = ralph_dir.join("done.jsonc");
fs::write(&done_path, content).expect("write done.jsonc");
done_path
}
fn create_config_jsonc(dir: &TempDir, content: &str) -> PathBuf {
let ralph_dir = setup_ralph_dir(dir);
let config_path = ralph_dir.join("config.jsonc");
fs::write(&config_path, content).expect("write config.jsonc");
config_path
}
#[path = "config_test/id_and_validation.rs"]
mod id_and_validation;
#[path = "config_test/jsonc_and_tilde.rs"]
mod jsonc_and_tilde;
#[path = "config_test/layer_merge.rs"]
mod layer_merge;
#[path = "config_test/repo_paths.rs"]
mod repo_paths;