#!/usr/bin/env bash # run-smoke.sh — Run Nexus smoke tests locally. No LLM. No cloud. # # Usage: # ./tests/run-smoke.sh # Run all smoke tests # ./tests/run-smoke.sh --headed # Run with visible browser (debug) # ./tests/run-smoke.sh --grep "HUD" # Run specific test group # # Requirements: playwright installed (npm i -D @playwright/test) # First run: npx playwright install chromium set -euo pipefail cd "$(dirname "$0")/.." # Ensure playwright is available if ! command -v npx &>/dev/null; then echo "ERROR: npx not found. Install Node.js." exit 1 fi # Install playwright test if needed if [ ! -d node_modules/@playwright ]; then echo "Installing playwright test runner..." npm install --save-dev @playwright/test 2>&1 | tail -3 fi # Ensure browser is installed npx playwright install chromium --with-deps 2>/dev/null || true # Run tests echo "" echo "=== NEXUS SMOKE TESTS ===" echo "" npx playwright test tests/smoke.spec.js -c tests/playwright.config.js "$@" EXIT=$? echo "" if [ $EXIT -eq 0 ]; then echo "✅ ALL SMOKE TESTS PASSED" else echo "❌ SOME TESTS FAILED (exit $EXIT)" fi exit $EXIT