mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-24 13:44:54 +00:00
162 lines
4.7 KiB
Bash
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
|