use crate::LANG;
#[test]
fn supported_languages_rustdoc_lists_every_slug() {
const SECTION_HEADER: &str = "## Supported Languages";
const NEXT_HEADER: &str = "## Supported Metrics";
let lib_rs = std::fs::read_to_string(concat!(env!("CARGO_MANIFEST_DIR"), "/src/lib.rs"))
.expect("src/lib.rs is readable from CARGO_MANIFEST_DIR");
let section_start = lib_rs
.find(SECTION_HEADER)
.expect("rustdoc must contain a `## Supported Languages` section");
let section_end = lib_rs[section_start..]
.find(NEXT_HEADER)
.map(|offset| section_start + offset)
.expect("`## Supported Languages` must be followed by `## Supported Metrics`");
let section = &lib_rs[section_start..section_end];
for lang in LANG::into_enum_iter() {
let slug_token = format!("`{}`", lang.name());
assert!(
section.contains(&slug_token),
"LANG::{lang:?} slug {slug_token} is missing from the \
`## Supported Languages` rustdoc list in src/lib.rs — \
add an entry there (see #769)",
);
}
}