]> Sergey Matveev's repositories - zsh-autoenv.git/blobdiff - tests/leave.t
Cleanup API/vars for enter/leave events
[zsh-autoenv.git] / tests / leave.t
index 2e4e36089d730aebd92e52405bb288ab0d6bb638..46580b76469b5f58563d212f446c771af95514cf 100644 (file)
@@ -1,18 +1,18 @@
-  $ source $TESTDIR/setup.sh
+  $ source $TESTDIR/setup.zsh || return 1
 
-Lets set a simple .env action
+Lets set a simple .autoenv.zsh action
 
   $ mkdir sub
   $ cd sub
-  $ echo 'echo ENTERED' >> .env
-  $ echo 'echo LEFT' >> .env.leave
+  $ echo 'echo ENTERED' > .autoenv.zsh
+  $ echo 'echo LEFT' > .autoenv_leave.zsh
 
 Change to the directory.
 
   $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
   $ cd .
   Attempting to load unauthorized env file!
-  -* /tmp/cramtests-*/leave.t/sub/.env (glob)
+  -* /tmp/cramtests-*/leave.t/sub/.autoenv.zsh (glob)
   
   **********************************************
   
@@ -29,7 +29,7 @@ Leave the directory and answer "no".
   $ _autoenv_ask_for_yes() { echo "no"; return 1 }
   $ cd ..
   Attempting to load unauthorized env file!
-  -* /tmp/cramtests-*/leave.t/sub/.env.leave (glob)
+  -* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
   
   **********************************************
   
@@ -45,7 +45,7 @@ Leave the directory and answer "no".
   $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
   $ cd ..
   Attempting to load unauthorized env file!
-  -* /tmp/cramtests-*/leave.t/sub/.env.leave (glob)
+  -* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
   
   **********************************************
   
@@ -80,7 +80,7 @@ Now check with subdirs, not looking at parent dirs.
   LEFT
 
 
-Test that .env is sourced only once with AUTOENV_HANDLE_LEAVE=0.
+Test that .autoenv.zsh is sourced only once with AUTOENV_HANDLE_LEAVE=0.
 
   $ unset _autoenv_stack_entered
   $ AUTOENV_HANDLE_LEAVE=0
@@ -88,3 +88,43 @@ Test that .env is sourced only once with AUTOENV_HANDLE_LEAVE=0.
   ENTERED
   $ cd ..
   $ cd sub
+
+
+Test that "leave" is not triggered when entering an outside dir via symlink.
+
+  $ AUTOENV_HANDLE_LEAVE=1
+  $ cd ..
+  LEFT
+  $ mkdir outside
+  $ cd outside
+  $ echo 'echo ENTERED outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv.zsh
+  $ echo 'echo LEFT outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv_leave.zsh
+  $ echo 'echo LEFT: autoenv_env_file:${autoenv_env_file}' >> .autoenv_leave.zsh
+  $ test_autoenv_auth_env_files
+
+  $ cd ..
+  $ ln -s ../outside sub/symlink
+  $ cd sub
+  ENTERED
+  $ cd symlink
+  ENTERED outside: PWD:symlink pwd:symlink from:sub to:symlink event:enter
+
+  $ cd ../..
+  LEFT
+  LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
+  LEFT: autoenv_env_file:*/leave.t/sub/symlink/.autoenv_leave.zsh (glob)
+  $ cd sub/symlink
+  ENTERED outside: PWD:symlink pwd:symlink from:leave.t to:symlink event:enter
+
+$autoenv_env_file should not be exported.
+
+  $ echo -n $autoenv_env_file
+
+$autoenv_env_file should be reset when leaving.
+
+  $ echo -n $autoenv_env_file
+  $ cd ../..
+  LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
+  LEFT: autoenv_env_file:*/leave.t/sub/symlink/.autoenv_leave.zsh (glob)
+  $ echo ${autoenv_env_file:-empty}
+  empty