mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-11-15 09:38:16 -07:00
21bc411915
* ci: add latest OSs to testing matrix * ci: bump bats & shellcheck & shfmt * chore: format with latest shfmt
84 lines
1.9 KiB
Bash
84 lines
1.9 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helpers
|
|
|
|
setup() {
|
|
setup_asdf_dir
|
|
install_dummy_plugin
|
|
|
|
PROJECT_DIR=$HOME/project
|
|
mkdir -p $PROJECT_DIR
|
|
cd $PROJECT_DIR
|
|
|
|
# asdf lib needed to run generated shims
|
|
cp -rf $BATS_TEST_DIRNAME/../{bin,lib} $ASDF_DIR/
|
|
}
|
|
|
|
teardown() {
|
|
clean_asdf_dir
|
|
}
|
|
|
|
@test "asdf env without argument should display help" {
|
|
run asdf env
|
|
[ "$status" -eq 1 ]
|
|
echo "$output" | grep "usage: asdf env <command>"
|
|
}
|
|
|
|
@test "asdf env should execute under the environment used for a shim" {
|
|
echo "dummy 1.0" >$PROJECT_DIR/.tool-versions
|
|
run asdf install
|
|
|
|
run asdf env dummy which dummy
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" == "$ASDF_DIR/installs/dummy/1.0/bin/dummy" ]
|
|
}
|
|
|
|
@test "asdf env should execute under plugin custom environment used for a shim" {
|
|
echo "dummy 1.0" >$PROJECT_DIR/.tool-versions
|
|
run asdf install
|
|
|
|
echo "export FOO=bar" >$ASDF_DIR/plugins/dummy/bin/exec-env
|
|
chmod +x $ASDF_DIR/plugins/dummy/bin/exec-env
|
|
|
|
run asdf env dummy
|
|
[ "$status" -eq 0 ]
|
|
echo $output | grep 'FOO=bar'
|
|
}
|
|
|
|
@test "asdf env should ignore plugin custom environment on system version" {
|
|
echo "dummy 1.0" >$PROJECT_DIR/.tool-versions
|
|
run asdf install
|
|
|
|
echo "export FOO=bar" >$ASDF_DIR/plugins/dummy/bin/exec-env
|
|
chmod +x $ASDF_DIR/plugins/dummy/bin/exec-env
|
|
|
|
echo "dummy system" >$PROJECT_DIR/.tool-versions
|
|
|
|
run asdf env dummy
|
|
[ "$status" -eq 0 ]
|
|
|
|
run grep 'FOO=bar' <(echo $output)
|
|
[ "$output" == "" ]
|
|
[ "$status" -eq 1 ]
|
|
|
|
run asdf env dummy which dummy
|
|
[ "$output" == "$ASDF_DIR/shims/dummy" ]
|
|
[ "$status" -eq 0 ]
|
|
}
|
|
|
|
@test "asdf env should set PATH correctly" {
|
|
echo "dummy 1.0" >$PROJECT_DIR/.tool-versions
|
|
run asdf install
|
|
|
|
run asdf env dummy
|
|
[ "$status" -eq 0 ]
|
|
|
|
# Should set path
|
|
path_line=$(echo "$output" | grep '^PATH=')
|
|
[ "$path_line" != "" ]
|
|
|
|
# Should not contain duplicate colon
|
|
run grep '::' <(echo "$path_line")
|
|
[ "$duplicate_colon" == "" ]
|
|
}
|