Files
low-code-react-app-b/sh/validate-tests.sh
2026-01-17 20:41:48 +00:00

162 lines
4.7 KiB
Bash

#!/bin/bash
# Smoke Test Validation Script
# This script validates that the test environment is properly configured
echo "=================================================="
echo " CodeForge Smoke Test Validation"
echo "=================================================="
echo ""
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
ERRORS=0
# Check Node.js
echo "Checking Node.js..."
if command -v node &> /dev/null; then
NODE_VERSION=$(node -v)
echo -e "${GREEN}${NC} Node.js installed: $NODE_VERSION"
else
echo -e "${RED}${NC} Node.js not found"
ERRORS=$((ERRORS + 1))
fi
# Check npm
echo "Checking npm..."
if command -v npm &> /dev/null; then
NPM_VERSION=$(npm -v)
echo -e "${GREEN}${NC} npm installed: $NPM_VERSION"
else
echo -e "${RED}${NC} npm not found"
ERRORS=$((ERRORS + 1))
fi
# Check package.json exists
echo "Checking package.json..."
if [ -f "package.json" ]; then
echo -e "${GREEN}${NC} package.json found"
else
echo -e "${RED}${NC} package.json not found"
ERRORS=$((ERRORS + 1))
fi
# Check if playwright is installed
echo "Checking Playwright..."
if npm list @playwright/test &> /dev/null; then
PLAYWRIGHT_VERSION=$(npm list @playwright/test | grep @playwright/test | awk '{print $2}')
echo -e "${GREEN}${NC} Playwright installed: $PLAYWRIGHT_VERSION"
else
echo -e "${RED}${NC} Playwright not installed. Run: npm install"
ERRORS=$((ERRORS + 1))
fi
# Check if playwright config exists
echo "Checking Playwright configuration..."
if [ -f "playwright.config.ts" ]; then
echo -e "${GREEN}${NC} playwright.config.ts found"
else
echo -e "${RED}${NC} playwright.config.ts not found"
ERRORS=$((ERRORS + 1))
fi
# Check if smoke test file exists
echo "Checking smoke test file..."
if [ -f "e2e/smoke.spec.ts" ]; then
echo -e "${GREEN}${NC} e2e/smoke.spec.ts found"
TEST_COUNT=$(grep -c "^ test(" e2e/smoke.spec.ts)
echo " Found $TEST_COUNT smoke tests"
else
echo -e "${RED}${NC} e2e/smoke.spec.ts not found"
ERRORS=$((ERRORS + 1))
fi
# Check if npm script exists
echo "Checking npm test scripts..."
if grep -q '"test:e2e:smoke"' package.json; then
echo -e "${GREEN}${NC} test:e2e:smoke script found"
else
echo -e "${RED}${NC} test:e2e:smoke script not found in package.json"
ERRORS=$((ERRORS + 1))
fi
# Check if dev script exists
echo "Checking dev server script..."
if grep -q '"dev"' package.json; then
echo -e "${GREEN}${NC} dev script found"
else
echo -e "${RED}${NC} dev script not found in package.json"
ERRORS=$((ERRORS + 1))
fi
# Check port 5173 availability
echo "Checking port 5173 availability..."
if lsof -Pi :5173 -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e "${YELLOW}${NC} Port 5173 is in use (dev server might be running)"
else
echo -e "${GREEN}${NC} Port 5173 is available"
fi
# Check if Playwright browsers are installed
echo "Checking Playwright browsers..."
if [ -d "$HOME/.cache/ms-playwright" ] || [ -d "$HOME/Library/Caches/ms-playwright" ]; then
echo -e "${GREEN}${NC} Playwright browsers appear to be installed"
else
echo -e "${YELLOW}${NC} Playwright browsers may not be installed"
echo " Run: npx playwright install"
fi
# Check src directory exists
echo "Checking source directory..."
if [ -d "src" ]; then
echo -e "${GREEN}${NC} src/ directory found"
if [ -f "src/App.tsx" ]; then
echo -e "${GREEN}${NC} src/App.tsx found"
else
echo -e "${RED}${NC} src/App.tsx not found"
ERRORS=$((ERRORS + 1))
fi
else
echo -e "${RED}${NC} src/ directory not found"
ERRORS=$((ERRORS + 1))
fi
# Check index.html exists
echo "Checking index.html..."
if [ -f "index.html" ]; then
echo -e "${GREEN}${NC} index.html found"
else
echo -e "${RED}${NC} index.html not found"
ERRORS=$((ERRORS + 1))
fi
echo ""
echo "=================================================="
if [ $ERRORS -eq 0 ]; then
echo -e "${GREEN}✓ All validation checks passed!${NC}"
echo ""
echo "You can now run smoke tests with:"
echo " npm run test:e2e:smoke"
echo ""
echo "Other test commands:"
echo " npm run test:e2e:ui # Interactive UI mode"
echo " npm run test:e2e:headed # Watch tests run"
echo " npm run test:e2e:debug # Debug mode"
echo " npm run test:e2e # Full test suite"
else
echo -e "${RED}$ERRORS validation check(s) failed${NC}"
echo ""
echo "Please fix the issues above before running tests."
echo ""
echo "Common fixes:"
echo " npm install # Install dependencies"
echo " npx playwright install # Install browsers"
fi
echo "=================================================="
exit $ERRORS