Files
OpenJarvis/tests/install/bash/test_install_rust.bats
T

36 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bats
setup() {
TEST_TMPDIR=$(mktemp -d)
export STUBS_DIR="$BATS_TEST_DIRNAME/stubs"
export STUBS_NO_CARGO="$TEST_TMPDIR/stubs-no-cargo"
mkdir -p "$STUBS_NO_CARGO"
# Copy all stubs except cargo into the no-cargo dir.
for s in "$STUBS_DIR"/*; do
name=$(basename "$s")
if [[ "$name" != "cargo" ]]; then
cp "$s" "$STUBS_NO_CARGO/"
fi
done
export RUSTUP_STUB_LOG="$TEST_TMPDIR/rustup.log"
export CURL_STUB_LOG="$TEST_TMPDIR/curl.log"
: > "$RUSTUP_STUB_LOG"
: > "$CURL_STUB_LOG"
export SCRIPT="$BATS_TEST_DIRNAME/../../../scripts/install/install-rust.sh"
}
teardown() {
[[ -n "${TEST_TMPDIR:-}" ]] && rm -rf "$TEST_TMPDIR"
}
@test "skips install when cargo already present" {
PATH="$STUBS_DIR:$PATH" run bash "$SCRIPT"
[ "$status" -eq 0 ]
[ ! -s "$CURL_STUB_LOG" ]
}
@test "runs rustup curl-pipe-bash when cargo is missing" {
PATH="$STUBS_NO_CARGO:/usr/bin:/bin:/usr/local/bin" run bash "$SCRIPT"
grep -q "sh.rustup.rs" "$CURL_STUB_LOG"
}