asdf

Форк
0
/
shim_env_command.bats 
84 строки · 1.9 Кб
1
#!/usr/bin/env bats
2
# shellcheck disable=SC2164
3

4
load test_helpers
5

6
setup() {
7
  setup_asdf_dir
8
  install_dummy_plugin
9

10
  PROJECT_DIR="$HOME/project"
11
  mkdir -p "$PROJECT_DIR"
12
  cd "$PROJECT_DIR"
13

14
  # asdf lib needed to run generated shims
15
  cp -rf "$BATS_TEST_DIRNAME"/../{bin,lib} "$ASDF_DIR/"
16
}
17

18
teardown() {
19
  clean_asdf_dir
20
}
21

22
@test "asdf env without argument should display help" {
23
  run asdf env
24
  [ "$status" -eq 1 ]
25
  echo "$output" | grep "usage: asdf env <command>"
26
}
27

28
@test "asdf env should execute under the environment used for a shim" {
29
  echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
30
  run asdf install
31

32
  run asdf env dummy which dummy
33
  [ "$status" -eq 0 ]
34
  [ "$output" = "$ASDF_DIR/installs/dummy/1.0/bin/dummy" ]
35
}
36

37
@test "asdf env should execute under plugin custom environment used for a shim" {
38
  echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
39
  run asdf install
40

41
  echo "export FOO=bar" >"$ASDF_DIR/plugins/dummy/bin/exec-env"
42
  chmod +x "$ASDF_DIR/plugins/dummy/bin/exec-env"
43

44
  run asdf env dummy
45
  [ "$status" -eq 0 ]
46
  echo "$output" | grep 'FOO=bar'
47
}
48

49
@test "asdf env should ignore plugin custom environment on system version" {
50
  echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
51
  run asdf install
52

53
  echo "export FOO=bar" >"$ASDF_DIR/plugins/dummy/bin/exec-env"
54
  chmod +x "$ASDF_DIR/plugins/dummy/bin/exec-env"
55

56
  echo "dummy system" >"$PROJECT_DIR/.tool-versions"
57

58
  run asdf env dummy
59
  [ "$status" -eq 0 ]
60

61
  run grep 'FOO=bar' <<<"$output"
62
  [ "$output" = "" ]
63
  [ "$status" -eq 1 ]
64

65
  run asdf env dummy which dummy
66
  [ "$output" = "$ASDF_DIR/shims/dummy" ]
67
  [ "$status" -eq 0 ]
68
}
69

70
@test "asdf env should set PATH correctly" {
71
  echo "dummy 1.0" >"$PROJECT_DIR/.tool-versions"
72
  run asdf install
73

74
  run asdf env dummy
75
  [ "$status" -eq 0 ]
76

77
  # Should set path
78
  path_line=$(echo "$output" | grep '^PATH=')
79
  [ "$path_line" != "" ]
80

81
  # Should not contain duplicate colon
82
  run grep -q '::' <<<"$path_line"
83
  [ "$status" -ne 0 ]
84
}
85

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

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

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

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