#[tokio::test]
async fn configured_header_names_are_listed_without_their_values() {
let dir = tempfile::tempdir().expect("tempdir");
std::fs::write(
dir.path().join("drep.toml"),
"[[llm]]\nendpoint = \"http://e/v1\"\nmodel = \"m\"\napi_key = \"k\"\n\n\
[llm.headers]\n\"X-Tenant-Token\" = \"super-secret-value\"\n\"User-Agent\" = \"acme/1.0\"\n",
)
.expect("drep.toml");
let report = super::a_llm_section::report_for(dir.path()).await;
assert!(
report.contains("headers: User-Agent, X-Tenant-Token"),
"names, sorted: {report}"
);
assert!(
!report.contains("super-secret-value"),
"a header value must never reach the report: {report}"
);
}
#[tokio::test]
async fn the_default_user_agent_is_reported_even_when_none_is_configured() {
let dir = tempfile::tempdir().expect("tempdir");
std::fs::write(
dir.path().join("drep.toml"),
"[[llm]]\nendpoint = \"http://e/v1\"\nmodel = \"m\"\napi_key = \"k\"\n",
)
.expect("drep.toml");
let report = super::a_llm_section::report_for(dir.path()).await;
assert!(
report.contains("headers: User-Agent (default)"),
"got {report}"
);
}
#[tokio::test]
async fn header_only_auth_is_not_reported_as_a_missing_credential() {
let dir = tempfile::tempdir().expect("tempdir");
std::fs::write(
dir.path().join("drep.toml"),
"[[llm]]\nendpoint = \"http://e/v1\"\nmodel = \"m\"\n\n\
[llm.headers]\n\"Authorization\" = \"Bearer gateway-secret\"\n",
)
.expect("drep.toml");
let report = super::a_llm_section::report_for(dir.path()).await;
assert!(
report.contains("protocol key: not set; configured headers may supply authentication"),
"got {report}"
);
assert!(
!report.contains("run `drep auth login`"),
"header authentication must not be diagnosed as missing: {report}"
);
}