#[test]
#[cfg(target_family = "unix")]
fn check_config_json() {
use std::path::Path;
use regex::Regex;
use serde_json::Value;
let config = serde_json::from_str(include_str!("../../../docs/source/config.json"))
.expect("docs json must be valid");
let result = jsonpath_lib::select(&config, "$.sidebar.*.*").expect("values must be selectable");
let re = Regex::new(r"^[a-z/-]+$").expect("regex must be valid");
for value in result {
if let Value::String(path) = value {
if !path.starts_with("https://") {
assert!(
re.is_match(path),
"{path} in config.json was not kebab case"
);
if path != "/" {
let path_in_docs = format!("../docs/source{path}.mdx");
let path_in_docs = Path::new(&path_in_docs);
assert!(
path_in_docs.exists(),
"{path} in docs/source/config.json did not exist"
);
}
}
}
}
}