lightweight-server/tests/test-step1-selection.sh
2026-07-15 14:54:41 +07:00

57 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -Eeuo pipefail
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
source <(awk '/^\[\[ "\$EUID"/{exit} {print}' ochenstarik-server-1.sh)
declare -a MOCK_APT_PACKAGES=()
MOCK_LOCALE=""
MOCK_UPDATE_LOCALE=""
ensure_apt_updated() { :; }
apt-cache() { return 0; }
package_is_installed() { return 1; }
record_new_packages() { :; }
save_original_locale() { :; }
apt-get() {
[[ "${1:-}" == install ]] || return 0
shift
[[ "${1:-}" != -y ]] || shift
MOCK_APT_PACKAGES=("$@")
}
locale-gen() { MOCK_LOCALE="$1"; }
update-locale() { MOCK_UPDATE_LOCALE="$*"; }
contains_package() {
local expected="$1" package_name
for package_name in "${MOCK_APT_PACKAGES[@]}"; do
[[ "$package_name" != "$expected" ]] || return 0
done
return 1
}
choose_and_install_programs <<< '1 3' >/dev/null
contains_package git
contains_package iotop
! contains_package nmap
! contains_package ffmpeg
MOCK_APT_PACKAGES=()
choose_and_install_programs <<< '' >/dev/null
contains_package nmap
contains_package ffmpeg
contains_package restic
contains_package postgresql-client
MOCK_APT_PACKAGES=()
choose_and_install_programs <<< '0' >/dev/null
((${#MOCK_APT_PACKAGES[@]} == 0))
choose_terminal_language <<< '2' >/dev/null
[[ "$MOCK_LOCALE" == ru_RU.UTF-8 ]]
[[ "$MOCK_UPDATE_LOCALE" == *'LANG=ru_RU.UTF-8'* ]]
[[ "$MOCK_UPDATE_LOCALE" == *'LANGUAGE=ru_RU:ru'* ]]
printf 'Step 1 selection tests passed.\n'