Files
tests/test.sh
T
2026-06-02 14:40:03 +02:00

74 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
MAIN_DIR=$(realpath -e "$(dirname "$0")")
# shellcheck disable=1091
source "$MAIN_DIR/vendor/std/src/lib.sh"
std::mod::deps "$MAIN_DIR/vendor" clap
source "$MAIN_DIR/src/lib.sh"
eval "$(std::sensible)" # funny, this changes how $0 behaves too
export CLAP_HL_SECTION=$'\033[4;1;38;2;236;134;150m'
export CLAP_HL_WORD=$'\033[33m'
export CLAP_HL_OPTION=$'\033[34m'
declare -g TEST_COUNT=0
test::submod() {
TEST_COUNT=$((TEST_COUNT + 1))
return 0
}
test::name::a() {
TEST_COUNT=$((TEST_COUNT + 1))
return 0
}
test::name::b() {
TEST_COUNT=$((TEST_COUNT + 1))
return 0
}
test::name::c() {
TEST_COUNT=$((TEST_COUNT + 1))
return 0
}
test::name::f() {
TEST_COUNT=$((TEST_COUNT + 1))
echo stdout
echo error >&2
return 1
}
# NOTE: be careful with return/exit here
# I'm not gonna exhaustively test this one...
declare -a tests__units=(
test::submod
test::name::a
test::name::b
test::name::c
)
declare -a tests__clap_subcommand=()
echo "=======> Check this looks fine (everything)"
tests::run "$@"
echo
echo "=======> And this (only submod)"
tests::run "$@" submod
declare -a tests__units=(
test::submod
test::name::a
test::name::b
test::name::f
)
tests::run submod &>/dev/null
echo
echo "=======> This fails, as it should"
! tests::run "$@"