Files
TA-ProxMenu/tests/test-ha-status.sh
T
2026-07-25 23:41:34 -05:00

33 lines
1.0 KiB
Bash

#!/usr/bin/env bash
set -u -o pipefail
TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
source "${TEST_ROOT}/tests/testlib.sh"
source "${TEST_ROOT}/inc/ha-status.inc"
STATUS_FILE="$(mktemp /tmp/tapm-ha-status.XXXXXX)"
cleanup_ha_status_test() {
[[ "$STATUS_FILE" == /tmp/tapm-ha-status.* ]] && rm -f -- "$STATUS_FILE"
}
trap cleanup_ha_status_test EXIT
printf '%s\n' \
'{"node_status":{"pve1":"online","pve2":"maintenance mode"}}' \
>"$STATUS_FILE"
assert_success "maintenance node detected in HA manager state" \
TAPM_HA_NODE_IN_MAINTENANCE pve2 "$STATUS_FILE"
assert_failure "active node is not reported as maintenance" \
TAPM_HA_NODE_IN_MAINTENANCE pve1 "$STATUS_FILE"
printf '%s\n' \
'{"nodes":[{"node":"pve3","state":"maintenance"}]}' \
>"$STATUS_FILE"
assert_success "structured HA node state detected" \
TAPM_HA_NODE_IN_MAINTENANCE pve3 "$STATUS_FILE"
printf '%s\n' 'not-json' >"$STATUS_FILE"
assert_failure "malformed HA state is rejected" \
TAPM_HA_NODE_IN_MAINTENANCE pve1 "$STATUS_FILE"
finish_tests