chore: track backend smoke runner script
This commit is contained in:
parent
e30eb6b4d3
commit
720dc09707
10
README.md
10
README.md
@ -65,10 +65,16 @@ pm2 restart crm-backend
|
||||
### Automated smoke (recommended)
|
||||
|
||||
```bash
|
||||
/opt/crm/scripts/smoke_backend.sh
|
||||
./scripts/smoke_backend.sh
|
||||
|
||||
# optionally reseed demo data
|
||||
/opt/crm/scripts/smoke_backend.sh --seed
|
||||
./scripts/smoke_backend.sh --seed
|
||||
```
|
||||
|
||||
Server wrapper (delegates to repo-tracked script):
|
||||
|
||||
```bash
|
||||
/opt/crm/scripts/smoke_backend.sh
|
||||
```
|
||||
|
||||
### Tests
|
||||
|
||||
81
scripts/smoke_backend.sh
Executable file
81
scripts/smoke_backend.sh
Executable file
@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# CRM backend smoke runner (repo-tracked)
|
||||
# - builds backend
|
||||
# - restarts PM2
|
||||
# - optional seed
|
||||
# - runs API smoke test
|
||||
# - runs Jest tests
|
||||
|
||||
BACKEND_DIR="${BACKEND_DIR:-/opt/crm/backend}"
|
||||
ENV_FILE="${ENV_FILE:-/opt/crm/.env}"
|
||||
|
||||
SEED=0
|
||||
|
||||
usage() {
|
||||
cat <<'USAGE'
|
||||
Usage: scripts/smoke_backend.sh [--seed]
|
||||
|
||||
Environment:
|
||||
BACKEND_DIR Backend directory (default: /opt/crm/backend)
|
||||
ENV_FILE Env file path (default: /opt/crm/.env)
|
||||
|
||||
Options:
|
||||
--seed Run prisma/seed.ts before tests
|
||||
USAGE
|
||||
}
|
||||
|
||||
if [[ ${1:-} == "-h" || ${1:-} == "--help" ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ ${1:-} == "--seed" ]]; then
|
||||
SEED=1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$ENV_FILE" ]]; then
|
||||
echo "Missing env file: $ENV_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Export env vars for this script execution
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
. "$ENV_FILE"
|
||||
set +a
|
||||
|
||||
BASE_URL="http://127.0.0.1:${PORT:-3000}"
|
||||
|
||||
echo "[smoke_backend] build"
|
||||
( cd "$BACKEND_DIR" && npm run build )
|
||||
|
||||
echo "[smoke_backend] pm2 restart"
|
||||
pm2 restart crm-backend
|
||||
|
||||
if [[ "$SEED" -eq 1 ]]; then
|
||||
echo "[smoke_backend] seed"
|
||||
( cd "$BACKEND_DIR" && npx ts-node prisma/seed.ts )
|
||||
fi
|
||||
|
||||
echo "[smoke_backend] wait for /health"
|
||||
for i in {1..30}; do
|
||||
if curl -fsS "$BASE_URL/health" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
if [[ "$i" -eq 30 ]]; then
|
||||
echo "Backend did not become ready" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[smoke_backend] api smoke"
|
||||
( cd "$BACKEND_DIR" && BASE_URL="$BASE_URL" ./test-api.sh )
|
||||
|
||||
echo "[smoke_backend] jest"
|
||||
( cd "$BACKEND_DIR" && npm test )
|
||||
( cd "$BACKEND_DIR" && npm run test:e2e )
|
||||
|
||||
echo "[smoke_backend] OK"
|
||||
Loading…
Reference in New Issue
Block a user