use crate::output::OutputConfig;
use std::path::Path;
pub fn format_path_for_display(path: &Path, opts: &OutputConfig) -> String {
let path_str = path.to_string_lossy().replace('\\', "/");
if opts.backticks {
format!("`{}`", path_str)
} else {
path_str
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::path::Path;
fn create_test_opts(backticks: bool) -> OutputConfig {
let mut opts = crate::output::tests::create_mock_output_config(false, false, false, false);
opts.backticks = backticks;
opts
}
#[test]
fn test_format_no_backticks() {
let opts = create_test_opts(false);
let path = Path::new("src/main.rs");
assert_eq!(format_path_for_display(path, &opts), "src/main.rs");
}
#[test]
fn test_format_with_backticks() {
let opts = create_test_opts(true);
let path = Path::new("src/main.rs");
assert_eq!(format_path_for_display(path, &opts), "`src/main.rs`");
}
#[test]
#[cfg(windows)]
fn test_format_windows_path_separator() {
let opts_no_ticks = create_test_opts(false);
let opts_ticks = create_test_opts(true);
let path = Path::new("src\\main.rs"); assert_eq!(format_path_for_display(path, &opts_no_ticks), "src/main.rs"); assert_eq!(format_path_for_display(path, &opts_ticks), "`src/main.rs`");
}
}