#[cfg(test)]
mod cpp_tests {
use crate::indexer::file_utils::FileUtils;
use crate::indexer::languages::{self, resolution_utils};
use std::path::Path;
const CPP_MODULE_EXTENSIONS: [&str; 5] = ["cppm", "ixx", "mxx", "ccm", "cxxm"];
#[test]
fn test_cpp_module_extensions_are_registered_on_language() {
let lang = languages::get_language("cpp").expect("C++ language should be registered");
let extensions = lang.get_file_extensions();
for extension in CPP_MODULE_EXTENSIONS {
assert!(
extensions.contains(&extension),
"C++ language should support .{extension} module files"
);
}
}
#[test]
fn test_cpp_module_extensions_detect_as_cpp() {
for extension in CPP_MODULE_EXTENSIONS {
let file_name = format!("math.{extension}");
assert_eq!(
FileUtils::detect_language(Path::new(&file_name)),
Some("cpp"),
"FileUtils should detect .{extension} files as C++"
);
assert_eq!(
resolution_utils::detect_language_from_path(&file_name).as_deref(),
Some("cpp"),
"resolution_utils should detect .{extension} files as C++"
);
}
}
}