Implement e2e, add container with server
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# lib.sh — shared helpers for E2E test suite.
|
||||
#
|
||||
# Test functions set a global $FAILURES counter and $FAILED list so the
|
||||
# caller can exit non-zero after all suites have run.
|
||||
#
|
||||
# Sourced by run.sh — do NOT execute directly.
|
||||
#
|
||||
|
||||
FAILURES=0
|
||||
PASSES=0
|
||||
FAILED_TESTS=""
|
||||
|
||||
assert_eq() {
|
||||
local desc="$1" expected="$2" actual="$3"
|
||||
if [[ "$expected" == "$actual" ]]; then
|
||||
printf ' \033[1;32mPASS\033[0m %s\n' "$desc"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s\n' "$desc"
|
||||
printf ' expected: %q\n' "$expected"
|
||||
printf ' actual: %q\n' "$actual"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
assert_contains() {
|
||||
local desc="$1" haystack="$2" needle="$3"
|
||||
if [[ "$haystack" == *"$needle"* ]]; then
|
||||
printf ' \033[1;32mPASS\033[0m %s\n' "$desc"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s\n' "$desc"
|
||||
printf ' haystack did not contain: %q\n' "$needle"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
assert_not_contains() {
|
||||
local desc="$1" haystack="$2" needle="$3"
|
||||
if [[ "$haystack" != *"$needle"* ]]; then
|
||||
printf ' \033[1;32mPASS\033[0m %s\n' "$desc"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s\n' "$desc"
|
||||
printf ' haystack unexpectedly contained: %q\n' "$needle"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
assert_match() {
|
||||
local desc="$1" haystack="$2" regex="$3"
|
||||
if [[ "$haystack" =~ $regex ]]; then
|
||||
printf ' \033[1;32mPASS\033[0m %s\n' "$desc"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s\n' "$desc"
|
||||
printf ' did not match regex: %s\n' "$regex"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
assert_file_exists() {
|
||||
local desc="$1" path="$2"
|
||||
if [[ -e "$path" ]]; then
|
||||
printf ' \033[1;32mPASS\033[0m %s\n' "$desc"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s\n' "$desc"
|
||||
printf ' file not found: %s\n' "$path"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
assert_gt() {
|
||||
local desc="$1" a="$2" b="$3"
|
||||
if (( a > b )); then
|
||||
printf ' \033[1;32mPASS\033[0m %s (%s > %s)\n' "$desc" "$a" "$b"
|
||||
((++PASSES))
|
||||
else
|
||||
printf ' \033[1;31mFAIL\033[0m %s (%s <= %s)\n' "$desc" "$a" "$b"
|
||||
((++FAILURES))
|
||||
FAILED_TESTS+="$desc; "
|
||||
fi
|
||||
}
|
||||
|
||||
summary() {
|
||||
echo
|
||||
printf -- '---\n'
|
||||
printf 'passes: %d\n' "$PASSES"
|
||||
printf 'failures: %d\n' "$FAILURES"
|
||||
if [[ -n "$FAILED_TESTS" ]]; then
|
||||
printf 'failed: %s\n' "$FAILED_TESTS"
|
||||
fi
|
||||
if (( FAILURES > 0 )); then
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user