use super::*;
use crate::core::config::Language;
fn poly_toml(files: &[GeneratedFile]) -> &GeneratedFile {
files
.iter()
.find(|f| f.path.to_string_lossy() == "poly.toml")
.expect("scaffold should emit a repo-root poly.toml")
}
#[test]
fn poly_toml_discovery_excludes_schemas_directory() {
let config = test_config();
let api = test_api();
let files = scaffold(&api, &config, &[Language::Python]).unwrap();
let c = &poly_toml(&files).content;
assert!(
c.contains("\"/schemas/**\","),
"[discovery] exclude must root-anchor schemas/**; got:\n{c}"
);
}
#[test]
fn poly_toml_hooks_builtins_exclude_schemas_directory() {
let config = test_config();
let api = test_api();
let files = scaffold(&api, &config, &[Language::Python]).unwrap();
let c = &poly_toml(&files).content;
for builtin in [
"lint = { exclude = [",
"fmt = { exclude = [",
"file_safety = { exclude = [",
] {
let pos = c
.find(builtin)
.unwrap_or_else(|| panic!("{builtin} builtin present; got:\n{c}"));
let end = c[pos..].find(" }").map(|offset| pos + offset).unwrap_or(c.len());
assert!(
c[pos..end].contains("\"schemas/**\","),
"{builtin} must exclude schemas/**; got:\n{}",
&c[pos..end]
);
}
}