1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-05 09:20:59 +02:00
zsh-autoenv/tests/varstash_export.t

59 lines
1.2 KiB
Perl

Test varstash with exported variables in subshell.
$ source $TESTDIR/setup.sh || return 1
Setup test environment.
$ mkdir sub
$ cd sub
$ echo 'echo ENTER; autostash MYVAR=changed; autostash MYEXPORT=changed_export' > $AUTOENV_FILE_ENTER
$ echo 'echo LEAVE; autounstash' > $AUTOENV_FILE_LEAVE
Manually create auth file
$ test_autoenv_auth_env_files
Set environment variable.
$ MYVAR=orig
$ export MYEXPORT=orig_export
Activating the env stashes it and applies a new value.
$ cd .
ENTER
$ echo $MYVAR
changed
$ echo $MYEXPORT
changed_export
The variable is not available in a subshell, only the exported one.
$ $SHELL -c 'echo ${MYVAR:-empty}; echo $MYEXPORT'
empty
changed_export
Activate autoenv in the subshell.
$ $SHELL -c 'source $TEST_AUTOENV_PLUGIN_FILE; echo ${MYVAR}; echo $MYEXPORT'
ENTER
changed
changed_export
"autounstash" should handle the exported variables.
$ $SHELL -c 'source $TEST_AUTOENV_PLUGIN_FILE; cd ..; echo ${MYVAR:-empty}; echo $MYEXPORT'
ENTER
LEAVE
empty
orig_export
#
# Exiting the subshell should restore.
#
# $ pwd
# */varstash_export.t (glob)
# $ echo $MYVAR
# changed
# $ echo $MYEXPORT
# changed_export