include!("migrate_handlers_migration.rs");
include!("migrate_handlers_init.rs");
include!("migrate_handlers_enforce.rs");
#[cfg(test)]
mod migrate_handlers_init_tests {
use super::*;
#[test]
fn test_generate_default_pmat_yaml_is_parseable_yaml() {
let yaml = generate_default_pmat_yaml();
let _: serde_yaml_ng::Value = serde_yaml_ng::from_str(&yaml).unwrap();
}
#[test]
fn test_generate_default_pmat_yaml_contains_expected_sections() {
let yaml = generate_default_pmat_yaml();
assert!(yaml.contains("comply:"));
assert!(yaml.contains("thresholds:"));
assert!(yaml.contains("coverage:"));
assert!(yaml.contains("complexity:"));
assert!(yaml.contains("cb-050"));
assert!(yaml.contains("cb-060"));
}
#[test]
fn test_generate_default_pmat_yaml_loads_as_pmat_yaml_config() {
let yaml = generate_default_pmat_yaml();
let tmp = tempfile::NamedTempFile::new().unwrap();
std::fs::write(tmp.path(), yaml).unwrap();
let cfg =
crate::models::comply_config::PmatYamlConfig::load_from_path(tmp.path()).unwrap();
assert!((cfg.comply.thresholds.coverage - 85.0).abs() < 1e-6);
}
#[test]
fn test_generate_claude_md_embeds_project_name() {
let md = generate_claude_md("my-project");
assert!(md.contains("# Claude Code Configuration for my-project"));
}
#[test]
fn test_generate_claude_md_contains_required_sections() {
let md = generate_claude_md("x");
assert!(md.contains("## Code Search Policy"));
assert!(md.contains("## Quality Standards"));
assert!(md.contains("## Coverage"));
assert!(md.contains("## Git Workflow"));
assert!(md.contains("pmat query"));
assert!(md.contains("cargo llvm-cov"));
}
#[test]
fn test_generate_claude_md_empty_project_name_still_valid() {
let md = generate_claude_md("");
assert!(md.contains("# Claude Code Configuration for "));
assert!(!md.is_empty());
}
}