]> Sergey Matveev's repositories - zsh-autoenv.git/blob - tests/source-parent-until.t
c02a312adb063748d34bde8aa5c8f25c6468006f
[zsh-autoenv.git] / tests / source-parent-until.t
1 Test recursing into parent .autoenv.zsh files.
2
3   $ source $TESTDIR/setup.zsh || return 1
4
5 Setup env actions / output.
6
7   $ AUTOENV_LOOK_UPWARDS=1
8
9 Create env files in root dir.
10
11   $ echo 'echo ENTERED_root: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
12   $ echo 'echo LEFT_root: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
13   $ test_autoenv_auth_env_files
14
15 Create env files in sub dir.
16
17   $ mkdir -p sub/sub2/sub3/sub4
18   $ cd sub
19   ENTERED_root: PWD:sub from:source-parent-until.t to:sub
20
21   $ echo 'echo ENTERED_sub: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
22   $ echo 'echo LEFT_sub: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
23   $ test_autoenv_auth_env_files
24
25   $ cd sub2
26   ENTERED_sub: PWD:sub2 from:sub to:sub2
27   $ echo 'echo ENTERED_sub2: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
28   $ echo 'echo LEFT_sub2: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
29   $ test_autoenv_auth_env_files
30
31 The actual tests.
32
33 # $ cd sub3
34 # ENTERED_sub2: PWD:sub3 from:sub2 to:sub3
35 # $ cd ../..
36 # LEFT_sub2: PWD:sub from:sub3 to:sub
37   $ cd ..
38
39 Add sub/sub2/sub3/.autoenv.zsh file, with a call to autoenv_source_parent,
40 stopping at the parent dir.
41
42   $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ..\necho done_sub3\n" > sub2/sub3/.autoenv.zsh
43   $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
44   $ cd sub2/sub3
45   autoenv_source_parent_from_sub3:
46   ENTERED_sub2: PWD:sub3 from:sub to:sub3
47   done_sub3
48
49 Look up to `../..` now.
50
51   $ cd ../..
52   LEFT_sub2: PWD:sub from:sub3 to:sub
53   $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ../..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
54   $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
55   $ cd sub2/sub3
56   autoenv_source_parent_from_sub3:
57   ENTERED_sub2: PWD:sub3 from:sub to:sub3
58   done_sub3
59
60 Remove intermediate .autoenv.zsh from sub2.
61
62   $ cd ../..
63   LEFT_sub2: PWD:sub from:sub3 to:sub
64   $ rm sub2/.autoenv.zsh
65
66 Should source "sub" for ../.. now.
67
68   $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ../..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
69   $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
70   $ cd sub2/sub3
71   autoenv_source_parent_from_sub3:
72   ENTERED_sub: PWD:sub3 from:sub to:sub3
73   done_sub3
74
75 Should source nothing for .. now.
76
77   $ cd ../..
78   $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
79   $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
80   $ cd sub2/sub3
81   autoenv_source_parent_from_sub3:
82   done_sub3
83
84 Look up to "/" (default).
85
86   $ cd ../..
87   $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent /\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
88   $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
89   $ cd sub2/sub3
90   autoenv_source_parent_from_sub3:
91   ENTERED_sub: PWD:sub3 from:sub to:sub3
92   done_sub3