@@ -490,8 +490,25 @@ mod tests {
490490
491491 use super :: * ;
492492
493+ fn test_absolute_path ( posix : & str , windows : & str ) -> AbsolutePathBuf {
494+ let path = if cfg ! ( windows) { windows } else { posix } ;
495+ AbsolutePathBuf :: new ( path. into ( ) ) . unwrap ( )
496+ }
497+
498+ fn default_user_home ( ) -> AbsolutePathBuf {
499+ test_absolute_path ( "/home/user" , r"C:\Users\user" )
500+ }
501+
502+ fn custom_user_home ( ) -> AbsolutePathBuf {
503+ test_absolute_path ( "/Users/test" , r"C:\Users\test" )
504+ }
505+
506+ fn shell_path ( path : & AbsolutePathBuf ) -> Str {
507+ normalize_path_separators ( & path. as_path ( ) . display ( ) . to_string ( ) )
508+ }
509+
493510 fn default_source_matcher ( ) -> VitePlusSourceMatcher {
494- let user_home = AbsolutePathBuf :: new ( "/home/user" . into ( ) ) . unwrap ( ) ;
511+ let user_home = default_user_home ( ) ;
495512 let home_dir = user_home. join ( ".vite-plus" ) ;
496513 VitePlusSourceMatcher :: new ( & home_dir, & user_home)
497514 }
@@ -521,26 +538,30 @@ mod tests {
521538
522539 #[ test]
523540 fn test_remove_vite_plus_lines_absolute_path ( ) {
524- let matcher = default_source_matcher ( ) ;
525- let content = "# existing\n . \" /home/user/.vite-plus/env\" \n " ;
526- let result = remove_vite_plus_lines ( content, & matcher, "env" ) ;
541+ let user_home = default_user_home ( ) ;
542+ let home_dir = user_home. join ( ".vite-plus" ) ;
543+ let matcher = source_matcher_for ( & home_dir, & user_home) ;
544+ let env_path = shell_path ( & home_dir. join ( "env" ) ) ;
545+ let content = vite_str:: format!( "# existing\n . \" {env_path}\" \n " ) ;
546+ let result = remove_vite_plus_lines ( & content, & matcher, "env" ) ;
527547 assert_eq ! ( & * result, "# existing\n " ) ;
528548 }
529549
530550 #[ test]
531551 fn test_remove_vite_plus_lines_custom_absolute_path ( ) {
532- let user_home = AbsolutePathBuf :: new ( "/Users/test" . into ( ) ) . unwrap ( ) ;
533- let home_dir = user_home. join ( "tools/ vp" ) ;
552+ let user_home = custom_user_home ( ) ;
553+ let home_dir = user_home. join ( "tools" ) . join ( " vp") ;
534554 let matcher = source_matcher_for ( & home_dir, & user_home) ;
535- let content = "# existing\n . \" /Users/test/tools/vp/env\" \n " ;
536- let result = remove_vite_plus_lines ( content, & matcher, "env" ) ;
555+ let env_path = shell_path ( & home_dir. join ( "env" ) ) ;
556+ let content = vite_str:: format!( "# existing\n . \" {env_path}\" \n " ) ;
557+ let result = remove_vite_plus_lines ( & content, & matcher, "env" ) ;
537558 assert_eq ! ( & * result, "# existing\n " ) ;
538559 }
539560
540561 #[ test]
541562 fn test_remove_vite_plus_lines_custom_home_relative_path ( ) {
542- let user_home = AbsolutePathBuf :: new ( "/Users/test" . into ( ) ) . unwrap ( ) ;
543- let home_dir = user_home. join ( "tools/ vp" ) ;
563+ let user_home = custom_user_home ( ) ;
564+ let home_dir = user_home. join ( "tools" ) . join ( " vp") ;
544565 let matcher = source_matcher_for ( & home_dir, & user_home) ;
545566 let content = "# existing\n . \" $HOME/tools/vp/env\" \n " ;
546567 let result = remove_vite_plus_lines ( content, & matcher, "env" ) ;
@@ -549,8 +570,8 @@ mod tests {
549570
550571 #[ test]
551572 fn test_remove_vite_plus_lines_custom_tilde_path ( ) {
552- let user_home = AbsolutePathBuf :: new ( "/Users/test" . into ( ) ) . unwrap ( ) ;
553- let home_dir = user_home. join ( "tools/ vp" ) ;
573+ let user_home = custom_user_home ( ) ;
574+ let home_dir = user_home. join ( "tools" ) . join ( " vp") ;
554575 let matcher = source_matcher_for ( & home_dir, & user_home) ;
555576 let content = "# existing\n source '~/tools/vp/env.nu'\n " ;
556577 let result = remove_vite_plus_lines ( content, & matcher, "env.nu" ) ;
0 commit comments