@@ -458,3 +458,85 @@ pub fn entrypoint_paths(
458458
459459 Ok ( entrypoints)
460460}
461+
462+ #[ cfg( test) ]
463+ mod tests {
464+ use etcetera:: BaseStrategy ;
465+ use std:: path:: PathBuf ;
466+
467+ fn dirs_before ( ) -> ( PathBuf , PathBuf , PathBuf , PathBuf ) {
468+ let data_dir = directories:: ProjectDirs :: from ( "" , "" , "uv" )
469+ . unwrap ( )
470+ . data_dir ( )
471+ . to_path_buf ( ) ;
472+
473+ let cache_dir = directories:: ProjectDirs :: from ( "" , "" , "uv" )
474+ . unwrap ( )
475+ . cache_dir ( )
476+ . to_path_buf ( ) ;
477+
478+ let config_dir = {
479+ // On Windows, use, e.g., C:\Users\Alice\AppData\Roaming
480+ #[ cfg( windows) ]
481+ {
482+ dirs_sys:: known_folder_roaming_app_data ( )
483+ }
484+ // On Linux and macOS, use, e.g., /home/alice/.config.
485+ #[ cfg( not( windows) ) ]
486+ {
487+ std:: env:: var_os ( "XDG_CONFIG_HOME" )
488+ . and_then ( dirs_sys:: is_absolute_path)
489+ . or_else ( || dirs_sys:: home_dir ( ) . map ( |path| path. join ( ".config" ) ) )
490+ }
491+ } ;
492+
493+ let home_dir = {
494+ #[ cfg( windows) ]
495+ {
496+ dirs_sys:: known_folder_profile ( )
497+ }
498+ #[ cfg( not( windows) ) ]
499+ {
500+ dirs_sys:: home_dir ( )
501+ }
502+ } ;
503+
504+ ( data_dir, cache_dir, config_dir. unwrap ( ) , home_dir. unwrap ( ) )
505+ }
506+
507+ fn dirs_after ( ) -> ( PathBuf , PathBuf , PathBuf , PathBuf ) {
508+ let data_dir = etcetera:: base_strategy:: choose_native_strategy ( )
509+ . unwrap ( )
510+ . data_dir ( )
511+ . join ( "uv" ) ;
512+ let data_dir = if cfg ! ( windows) {
513+ data_dir. join ( "data" )
514+ } else {
515+ data_dir
516+ } ;
517+
518+ let cache_dir = etcetera:: base_strategy:: choose_native_strategy ( )
519+ . unwrap ( )
520+ . cache_dir ( )
521+ . join ( "uv" ) ;
522+ let cache_dir = if cfg ! ( windows) {
523+ cache_dir. join ( "cache" )
524+ } else {
525+ cache_dir
526+ } ;
527+
528+ let config_dir = etcetera:: base_strategy:: choose_base_strategy ( )
529+ . unwrap ( )
530+ . config_dir ( ) ;
531+ let home_dir = etcetera:: home_dir ( ) . unwrap ( ) ;
532+
533+ ( data_dir, cache_dir, config_dir, home_dir)
534+ }
535+
536+ #[ test]
537+ fn ensure_directory_not_changed ( ) {
538+ let before = dirs_before ( ) ;
539+ let after = dirs_after ( ) ;
540+ assert_eq ! ( before, after) ;
541+ }
542+ }
0 commit comments