Closes #18 Co-Authored-By: GPT-6 <codex@openai.com> Signed-off-by: James Maes <jmaes@dmdbrands.com>
33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
setup() {
|
|
export PROJECT_DIR="${BATS_TEST_DIRNAME}/.."
|
|
export WORK="${BATS_TEST_TMPDIR}/work"
|
|
mkdir -p "${WORK}/bin"
|
|
export BASH_ENV="${WORK}/bash-env" JAVA_VERSION=21
|
|
export APT_CALLS="${WORK}/apt-calls"
|
|
cat > "${WORK}/bin/sudo" <<'MOCK'
|
|
#!/usr/bin/env bash
|
|
if [[ "$1" == env ]]; then
|
|
[[ "$2" == DEBIAN_FRONTEND=noninteractive && "$3" == NEEDRESTART_MODE=a && "$4" == apt-get ]] || exit 2
|
|
printf '%s\n' "$*" >> "$APT_CALLS"
|
|
elif [[ "$1" == tee ]]; then
|
|
cat > /dev/null
|
|
fi
|
|
MOCK
|
|
printf '#!/usr/bin/env bash\necho key\n' > "${WORK}/bin/curl"
|
|
printf '#!/usr/bin/env bash\necho amd64\n' > "${WORK}/bin/dpkg"
|
|
printf '#!/usr/bin/env bash\necho java-version-21\n' > "${WORK}/bin/java"
|
|
chmod +x "${WORK}/bin/"*
|
|
export PATH="${WORK}/bin:${PATH}"
|
|
}
|
|
|
|
@test "APT update and Java installation cannot open an interactive restart prompt" {
|
|
run bash "${PROJECT_DIR}/src/scripts/install_java.sh"
|
|
[ "$status" -eq 0 ]
|
|
[ "$(wc -l < "$APT_CALLS")" -eq 2 ]
|
|
grep -q 'apt-get update -qq' "$APT_CALLS"
|
|
grep -q 'apt-get install -y -qq temurin-21-jdk' "$APT_CALLS"
|
|
grep -q "export JAVA_HOME='/usr/lib/jvm/temurin-21-jdk-amd64'" "$BASH_ENV"
|
|
}
|