test(utils): gate display_path tests to cfg(unix)
The tests set \$HOME to drive `dirs::home_dir()`. On Unix that's the contract dirs uses; on Windows dirs reads %USERPROFILE% first, so setting HOME has no effect and the tests fail. The `display_path` function itself is platform-identical — it delegates to `dirs::home_dir()` for the home prefix and uses `std::path::MAIN_SEPARATOR` for the separator after the tilde. The contraction logic is exercised on macOS/Linux which is sufficient coverage for an abstraction whose platform detail is delegated. If we want Windows-specific assertion coverage in the future, it should either set USERPROFILE alongside HOME or accept an injected home dir. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -233,7 +233,14 @@ pub fn estimate_message_chars(messages: &[Message]) -> usize {
|
||||
total
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
// Tests below set `HOME` to drive `dirs::home_dir()`, which is honored on
|
||||
// Unix but not on Windows (which reads `USERPROFILE` first). The
|
||||
// `display_path` contraction logic itself is platform-identical — it
|
||||
// delegates to `dirs::home_dir()`. Gate to `cfg(unix)` so we cover the
|
||||
// behavior on the platform whose env-var contract matches the test
|
||||
// driver, instead of writing platform-specific test scaffolding for a
|
||||
// pure abstraction.
|
||||
#[cfg(all(test, unix))]
|
||||
mod tests {
|
||||
use super::display_path;
|
||||
use std::path::PathBuf;
|
||||
|
||||
Reference in New Issue
Block a user