#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" echo "=== Building frontend ===" if [ -d "$PROJECT_ROOT/frontend" ]; then cd "$PROJECT_ROOT/frontend" npm install npm run build cd "$PROJECT_ROOT" else echo "Skipping frontend build (no frontend directory)" fi echo "=== Checking Rust formatting ===" if cargo fmt --version &>/dev/null; then cargo fmt --manifest-path "$PROJECT_ROOT/Cargo.toml" --check else echo "Skipping Rust formatting check (rustfmt not installed)" fi echo "=== Running cargo clippy ===" cargo clippy --manifest-path "$PROJECT_ROOT/Cargo.toml" --all-targets --all-features -- -D warnings echo "=== Running Rust tests ===" cargo test --manifest-path "$PROJECT_ROOT/Cargo.toml" --bin huskies echo "=== Running frontend unit tests ===" if [ -d "$PROJECT_ROOT/frontend" ]; then cd "$PROJECT_ROOT/frontend" npm test else echo "Skipping frontend tests (no frontend directory)" fi # Disabled: e2e tests may be causing merge pipeline hangs (no running server # in merge workspace → Playwright blocks indefinitely). Re-enable once confirmed. # Disabled: e2e tests cause merge pipeline hangs (no running server # in merge workspace → Playwright blocks indefinitely). # echo "=== Running e2e tests ===" # npm run test:e2e