use claude_core::ClaudePaths;
#[test]
fn paths_new_returns_some_with_home()
{
std::env::set_var( "HOME", "/tmp/test_home" );
assert!( ClaudePaths::new().is_some(), "expected Some when HOME is set" );
}
#[test]
fn paths_base_ends_with_dot_claude()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
assert!(
p.base().ends_with( ".claude" ),
"base must be $HOME/.claude, got: {}",
p.base().display()
);
}
#[test]
fn paths_credentials_file_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let f = p.credentials_file();
assert!(
f.ends_with( ".claude/.credentials.json" ),
"expected .claude/.credentials.json, got: {}",
f.display()
);
}
#[test]
fn paths_accounts_dir_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let d = p.accounts_dir();
assert!(
d.ends_with( ".claude/accounts" ),
"expected .claude/accounts, got: {}",
d.display()
);
}
#[test]
fn paths_projects_dir_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let d = p.projects_dir();
assert!(
d.ends_with( ".claude/projects" ),
"expected .claude/projects, got: {}",
d.display()
);
}
#[test]
fn paths_stats_file_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let f = p.stats_file();
assert!(
f.ends_with( ".claude/stats-cache.json" ),
"expected .claude/stats-cache.json, got: {}",
f.display()
);
}
#[test]
fn paths_settings_file_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let f = p.settings_file();
assert!(
f.ends_with( ".claude/settings.json" ),
"expected .claude/settings.json, got: {}",
f.display()
);
}
#[test]
fn paths_session_env_dir_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let d = p.session_env_dir();
assert!(
d.ends_with( ".claude/session-env" ),
"expected .claude/session-env, got: {}",
d.display()
);
}
#[test]
fn paths_sessions_dir_correct()
{
std::env::set_var( "HOME", "/tmp/test_home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let d = p.sessions_dir();
assert!(
d.ends_with( ".claude/sessions" ),
"expected .claude/sessions, got: {}",
d.display()
);
}
#[test]
fn paths_rooted_at_provided_home()
{
std::env::set_var( "HOME", "/custom/home" );
let p = ClaudePaths::new().expect( "HOME is set" );
let base = p.base().to_str().expect( "valid UTF-8 path" );
assert!(
base.starts_with( "/custom/home" ),
"paths must be rooted at the provided HOME, got: {base}"
);
}