10
PROJECT_DIR="$HOME/project"
18
@test "reshim should allow prefixes of other versions" {
19
run asdf install dummy 1.0.1
20
run asdf install dummy 1.0
25
run grep "asdf-plugin: dummy 1.0.1" "$ASDF_DIR/shims/dummy"
27
run grep "asdf-plugin: dummy 1.0\$" "$ASDF_DIR/shims/dummy"
31
@test "reshim command should remove shims of removed binaries" {
32
run asdf install dummy 1.0
34
[ -f "$ASDF_DIR/shims/dummy" ]
38
[ -f "$ASDF_DIR/shims/dummy" ]
40
run rm "$ASDF_DIR/installs/dummy/1.0/bin/dummy"
43
[ ! -f "$ASDF_DIR/shims/dummy" ]
46
@test "reshim should remove metadata of removed binaries" {
47
run asdf install dummy 1.0
48
run asdf install dummy 1.1
50
run rm "$ASDF_DIR/installs/dummy/1.0/bin/dummy"
53
[ -f "$ASDF_DIR/shims/dummy" ]
54
run grep "asdf-plugin: dummy 1.0" "$ASDF_DIR/shims/dummy"
56
run grep "asdf-plugin: dummy 1.1" "$ASDF_DIR/shims/dummy"
60
@test "reshim should not remove metadata of removed prefix versions" {
61
run asdf install dummy 1.0
62
run asdf install dummy 1.0.1
63
run rm "$ASDF_DIR/installs/dummy/1.0/bin/dummy"
66
[ -f "$ASDF_DIR/shims/dummy" ]
67
run grep "asdf-plugin: dummy 1.0.1" "$ASDF_DIR/shims/dummy"
71
@test "reshim should not duplicate shims" {
74
run asdf install dummy 1.0
75
run asdf install dummy 1.1
77
[ -f "$ASDF_DIR/shims/dummy" ]
79
run rm "$ASDF_DIR/shims/"*
81
[ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
85
[ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
89
[ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
92
@test "reshim should create shims only for files and not folders" {
95
run asdf install dummy 1.0
96
run asdf install dummy 1.1
98
[ -f "$ASDF_DIR/shims/dummy" ]
99
[ ! -f "$ASDF_DIR/shims/subdir" ]
101
run rm "$ASDF_DIR/shims/"*
103
[ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
104
[ "0" -eq "$(ls "$ASDF_DIR/shims/"subdir* | wc -l)" ]
106
run asdf reshim dummy
108
[ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
109
[ "0" -eq "$(ls "$ASDF_DIR/shims/"subdir* | wc -l)" ]
113
@test "reshim without arguments reshims all installed plugins" {
114
run asdf install dummy 1.0
115
run rm "$ASDF_DIR/shims/"*
117
[ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
120
[ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
123
@test "reshim command executes configured pre hook" {
124
run asdf install dummy 1.0
126
cat >"$HOME/.asdfrc" <<-'EOM'
127
pre_asdf_reshim_dummy = echo RESHIM
130
run asdf reshim dummy 1.0
131
[ "$output" = "RESHIM" ]
134
@test "reshim command executes configured post hook" {
135
run asdf install dummy 1.0
137
cat >"$HOME/.asdfrc" <<-'EOM'
138
post_asdf_reshim_dummy = echo RESHIM
141
run asdf reshim dummy 1.0
142
[ "$output" = "RESHIM" ]
147
@test "reshim should rewrite the shim file except the version list" {
148
run asdf install dummy 1.0
150
dummy_shim="$ASDF_DIR/shims/dummy"
152
sed -i.bak -e 's/exec /exec \/borked_path_due_to_homebrew_update/' "$dummy_shim"
153
run grep 'borked_path_due_to_homebrew_update' "$dummy_shim"
156
run asdf reshim dummy "path:$ASDF_DIR/installs/dummy/path"
157
run grep -v 'borked_path_due_to_homebrew_update' "$dummy_shim"
161
@test "reshim should allow local path versions" {
162
run asdf install dummy 1.0
164
mkdir -p "$ASDF_DIR/installs/dummy/path/bin/"
165
touch "$ASDF_DIR/installs/dummy/path/bin/dummy"
166
chmod +x "$ASDF_DIR/installs/dummy/path/bin/dummy"
168
run asdf reshim dummy "path:$ASDF_DIR/installs/dummy/path"
171
run grep "asdf-plugin: dummy 1.0" "$ASDF_DIR/shims/dummy"
173
run grep "asdf-plugin: dummy path:$ASDF_DIR/installs/dummy" "$ASDF_DIR/shims/dummy"