feat(tests): add test-env.sh, gitignore updates, package.json scripts

This commit is contained in:
2026-04-29 04:03:14 +02:00
parent 279c60a5eb
commit 4dce11dd26
4 changed files with 41 additions and 1 deletions

32
scripts/test-env.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env bash
set -euo pipefail
TT_WORKTREE_ROOT="$(git rev-parse --show-toplevel)"
# Deterministic port: 3100 + (sha1 of path) % 100
_hash=$(echo -n "$TT_WORKTREE_ROOT" | sha1sum | cut -c1-8)
_dec=$(( 16#$_hash ))
TT_TEST_PORT=$(( 3100 + _dec % 100 ))
# TT_TEST_PORT_RANDOM=1 → bind :0; backend writes actual port to data/test/.port
if [ "${TT_TEST_PORT_RANDOM:-0}" = "1" ]; then
TT_TEST_PORT=0
fi
TT_TEST_DB="${TT_WORKTREE_ROOT}/data/test/attendance.db"
TT_TEST_MODE=1
TT_BASE_URL="http://127.0.0.1:${TT_TEST_PORT}"
mkdir -p "${TT_WORKTREE_ROOT}/data/test"
export TT_WORKTREE_ROOT TT_TEST_PORT TT_TEST_DB TT_TEST_MODE TT_BASE_URL
cat > "${TT_WORKTREE_ROOT}/data/test/.env" <<EOF
TT_WORKTREE_ROOT=${TT_WORKTREE_ROOT}
TT_TEST_PORT=${TT_TEST_PORT}
TT_TEST_DB=${TT_TEST_DB}
TT_TEST_MODE=${TT_TEST_MODE}
TT_BASE_URL=${TT_BASE_URL}
EOF
echo "[test-env] TT_TEST_PORT=${TT_TEST_PORT} TT_TEST_DB=${TT_TEST_DB}"