asdf

Форк
0
/
reshim_command.bats 
175 строк · 4.5 Кб
1
#!/usr/bin/env bats
2
# shellcheck disable=SC2012
3

4
load test_helpers
5

6
setup() {
7
  setup_asdf_dir
8
  install_dummy_plugin
9

10
  PROJECT_DIR="$HOME/project"
11
  mkdir "$PROJECT_DIR"
12
}
13

14
teardown() {
15
  clean_asdf_dir
16
}
17

18
@test "reshim should allow prefixes of other versions" {
19
  run asdf install dummy 1.0.1
20
  run asdf install dummy 1.0
21

22
  run asdf reshim
23
  [ "$status" -eq 0 ]
24

25
  run grep "asdf-plugin: dummy 1.0.1" "$ASDF_DIR/shims/dummy"
26
  [ "$status" -eq 0 ]
27
  run grep "asdf-plugin: dummy 1.0\$" "$ASDF_DIR/shims/dummy"
28
  [ "$status" -eq 0 ]
29
}
30

31
@test "reshim command should remove shims of removed binaries" {
32
  run asdf install dummy 1.0
33
  [ "$status" -eq 0 ]
34
  [ -f "$ASDF_DIR/shims/dummy" ]
35

36
  run asdf reshim dummy
37
  [ "$status" -eq 0 ]
38
  [ -f "$ASDF_DIR/shims/dummy" ]
39

40
  run rm "$ASDF_DIR/installs/dummy/1.0/bin/dummy"
41
  run asdf reshim dummy
42
  [ "$status" -eq 0 ]
43
  [ ! -f "$ASDF_DIR/shims/dummy" ]
44
}
45

46
@test "reshim should remove metadata of removed binaries" {
47
  run asdf install dummy 1.0
48
  run asdf install dummy 1.1
49

50
  run rm "$ASDF_DIR/installs/dummy/1.0/bin/dummy"
51
  run asdf reshim dummy
52
  [ "$status" -eq 0 ]
53
  [ -f "$ASDF_DIR/shims/dummy" ]
54
  run grep "asdf-plugin: dummy 1.0" "$ASDF_DIR/shims/dummy"
55
  [ "$status" -eq 1 ]
56
  run grep "asdf-plugin: dummy 1.1" "$ASDF_DIR/shims/dummy"
57
  [ "$status" -eq 0 ]
58
}
59

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"
64
  run asdf reshim dummy
65
  [ "$status" -eq 0 ]
66
  [ -f "$ASDF_DIR/shims/dummy" ]
67
  run grep "asdf-plugin: dummy 1.0.1" "$ASDF_DIR/shims/dummy"
68
  [ "$status" -eq 0 ]
69
}
70

71
@test "reshim should not duplicate shims" {
72
  cd "$PROJECT_DIR"
73

74
  run asdf install dummy 1.0
75
  run asdf install dummy 1.1
76
  [ "$status" -eq 0 ]
77
  [ -f "$ASDF_DIR/shims/dummy" ]
78

79
  run rm "$ASDF_DIR/shims/"*
80
  [ "$status" -eq 0 ]
81
  [ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
82

83
  run asdf reshim dummy
84
  [ "$status" -eq 0 ]
85
  [ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
86

87
  run asdf reshim dummy
88
  [ "$status" -eq 0 ]
89
  [ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
90
}
91

92
@test "reshim should create shims only for files and not folders" {
93
  cd "$PROJECT_DIR"
94

95
  run asdf install dummy 1.0
96
  run asdf install dummy 1.1
97
  [ "$status" -eq 0 ]
98
  [ -f "$ASDF_DIR/shims/dummy" ]
99
  [ ! -f "$ASDF_DIR/shims/subdir" ]
100

101
  run rm "$ASDF_DIR/shims/"*
102
  [ "$status" -eq 0 ]
103
  [ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
104
  [ "0" -eq "$(ls "$ASDF_DIR/shims/"subdir* | wc -l)" ]
105

106
  run asdf reshim dummy
107
  [ "$status" -eq 0 ]
108
  [ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
109
  [ "0" -eq "$(ls "$ASDF_DIR/shims/"subdir* | wc -l)" ]
110

111
}
112

113
@test "reshim without arguments reshims all installed plugins" {
114
  run asdf install dummy 1.0
115
  run rm "$ASDF_DIR/shims/"*
116
  [ "$status" -eq 0 ]
117
  [ "0" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
118
  run asdf reshim
119
  [ "$status" -eq 0 ]
120
  [ "1" -eq "$(ls "$ASDF_DIR/shims/"dummy* | wc -l)" ]
121
}
122

123
@test "reshim command executes configured pre hook" {
124
  run asdf install dummy 1.0
125

126
  cat >"$HOME/.asdfrc" <<-'EOM'
127
pre_asdf_reshim_dummy = echo RESHIM
128
EOM
129

130
  run asdf reshim dummy 1.0
131
  [ "$output" = "RESHIM" ]
132
}
133

134
@test "reshim command executes configured post hook" {
135
  run asdf install dummy 1.0
136

137
  cat >"$HOME/.asdfrc" <<-'EOM'
138
post_asdf_reshim_dummy = echo RESHIM
139
EOM
140

141
  run asdf reshim dummy 1.0
142
  [ "$output" = "RESHIM" ]
143
}
144

145
# Fixes https://github.com/asdf-vm/asdf/issues/1115
146
# (Issue with executable_name changing after homebre updates)
147
@test "reshim should rewrite the shim file except the version list" {
148
  run asdf install dummy 1.0
149
  local dummy_shim
150
  dummy_shim="$ASDF_DIR/shims/dummy"
151

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" # Sanity check
154
  [ "$status" -eq 0 ]
155

156
  run asdf reshim dummy "path:$ASDF_DIR/installs/dummy/path"
157
  run grep -v 'borked_path_due_to_homebrew_update' "$dummy_shim"
158
  [ "$status" -eq 0 ]
159
}
160

161
@test "reshim should allow local path versions" {
162
  run asdf install dummy 1.0
163

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"
167

168
  run asdf reshim dummy "path:$ASDF_DIR/installs/dummy/path"
169

170
  [ "$status" -eq 0 ]
171
  run grep "asdf-plugin: dummy 1.0" "$ASDF_DIR/shims/dummy"
172
  [ "$status" -eq 0 ]
173
  run grep "asdf-plugin: dummy path:$ASDF_DIR/installs/dummy" "$ASDF_DIR/shims/dummy"
174
  [ "$status" -eq 0 ]
175
}
176

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.