|
|
|
|
@@ -18,7 +18,7 @@ Comprehensive validation that tests everything in the ROA2WEB codebase. This com
|
|
|
|
|
### Test Configuration
|
|
|
|
|
- **Company ID**: 110 (MARIUSM_AUTO) - has complete Oracle schema
|
|
|
|
|
- **Credentials**: `MARIUS M` / `123`
|
|
|
|
|
- **Backend Tests**: ~36 Oracle real tests in `reports-app/backend/tests/`
|
|
|
|
|
- **Backend Tests**: ~36 Oracle real tests in `backend/tests/`
|
|
|
|
|
- **Telegram Bot Tests**: Pure tests + Integration tests (mock tests removed)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
@@ -32,7 +32,7 @@ echo "===================="
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
echo "📝 Frontend Linting..."
|
|
|
|
|
cd reports-app/frontend
|
|
|
|
|
cd src
|
|
|
|
|
npm run lint
|
|
|
|
|
cd ../..
|
|
|
|
|
echo "✅ Frontend linting passed"
|
|
|
|
|
@@ -45,7 +45,7 @@ echo "📝 Python Code Quality Checks..."
|
|
|
|
|
|
|
|
|
|
# Backend
|
|
|
|
|
echo " → Checking backend code..."
|
|
|
|
|
cd reports-app/backend
|
|
|
|
|
cd backend
|
|
|
|
|
if [ -d "venv" ]; then
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
python -m flake8 app/ --count --select=E9,F63,F7,F82 --show-source --statistics || echo "⚠️ Backend has critical errors"
|
|
|
|
|
@@ -58,7 +58,7 @@ cd ../..
|
|
|
|
|
|
|
|
|
|
# Telegram Bot
|
|
|
|
|
echo " → Checking telegram bot code..."
|
|
|
|
|
cd reports-app/telegram-bot
|
|
|
|
|
cd backend/modules/telegram
|
|
|
|
|
if [ -d "venv" ]; then
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
python -m flake8 app/ tests/ --count --select=E9,F63,F7,F82 --show-source --statistics || echo "⚠️ Telegram bot has critical errors"
|
|
|
|
|
@@ -93,7 +93,7 @@ echo "========================="
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
echo "📝 Frontend Type Checking (ESLint with type checking)..."
|
|
|
|
|
cd reports-app/frontend
|
|
|
|
|
cd src
|
|
|
|
|
# ESLint already performs basic type checking for JavaScript
|
|
|
|
|
npm run lint -- --quiet
|
|
|
|
|
cd ../..
|
|
|
|
|
@@ -106,7 +106,7 @@ echo ""
|
|
|
|
|
echo "📝 Python Type Hints (Optional)..."
|
|
|
|
|
if command -v mypy >/dev/null 2>&1; then
|
|
|
|
|
echo " → Checking backend..."
|
|
|
|
|
cd reports-app/backend
|
|
|
|
|
cd backend
|
|
|
|
|
if [ -d "venv" ]; then
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
mypy app/ --ignore-missing-imports --no-strict-optional || echo "⚠️ Backend type hints have issues"
|
|
|
|
|
@@ -115,7 +115,7 @@ if command -v mypy >/dev/null 2>&1; then
|
|
|
|
|
cd ../..
|
|
|
|
|
|
|
|
|
|
echo " → Checking telegram bot..."
|
|
|
|
|
cd reports-app/telegram-bot
|
|
|
|
|
cd backend/modules/telegram
|
|
|
|
|
if [ -d "venv" ]; then
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
mypy app/ --ignore-missing-imports --no-strict-optional || echo "⚠️ Telegram bot type hints have issues"
|
|
|
|
|
@@ -139,7 +139,7 @@ echo "=========================="
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
echo "📝 Frontend Code Formatting (Prettier)..."
|
|
|
|
|
cd reports-app/frontend
|
|
|
|
|
cd src
|
|
|
|
|
npm run format -- --check || echo "⚠️ Some files need formatting (run: npm run format)"
|
|
|
|
|
cd ../..
|
|
|
|
|
echo "✅ Frontend formatting checked"
|
|
|
|
|
@@ -151,10 +151,10 @@ echo ""
|
|
|
|
|
echo "📝 Python Code Formatting (Black)..."
|
|
|
|
|
if command -v black >/dev/null 2>&1; then
|
|
|
|
|
echo " → Checking backend..."
|
|
|
|
|
black --check reports-app/backend/app/ || echo "⚠️ Backend needs formatting (run: black reports-app/backend/app/)"
|
|
|
|
|
black --check backend/app/ || echo "⚠️ Backend needs formatting (run: black backend/app/)"
|
|
|
|
|
|
|
|
|
|
echo " → Checking telegram bot..."
|
|
|
|
|
black --check reports-app/telegram-bot/app/ reports-app/telegram-bot/tests/ || echo "⚠️ Telegram bot needs formatting (run: black reports-app/telegram-bot/)"
|
|
|
|
|
black --check backend/modules/telegram/app/ backend/modules/telegram/tests/ || echo "⚠️ Telegram bot needs formatting (run: black backend/modules/telegram/)"
|
|
|
|
|
|
|
|
|
|
echo " → Checking shared modules..."
|
|
|
|
|
black --check shared/ || echo "⚠️ Shared modules need formatting (run: black shared/)"
|
|
|
|
|
@@ -205,7 +205,7 @@ echo ""
|
|
|
|
|
```bash
|
|
|
|
|
echo "📝 Backend Oracle Real Tests..."
|
|
|
|
|
echo " → Testing backend services, API endpoints, and cache system..."
|
|
|
|
|
cd reports-app/backend
|
|
|
|
|
cd backend
|
|
|
|
|
|
|
|
|
|
if [ ! -d "venv" ]; then
|
|
|
|
|
echo "⚠️ Backend venv not found - creating..."
|
|
|
|
|
@@ -234,7 +234,7 @@ echo ""
|
|
|
|
|
### Telegram Bot Unit Tests (Pure - No Backend Required)
|
|
|
|
|
```bash
|
|
|
|
|
echo "📝 Telegram Bot Unit Tests (Pure)..."
|
|
|
|
|
cd reports-app/telegram-bot
|
|
|
|
|
cd backend/modules/telegram
|
|
|
|
|
|
|
|
|
|
if [ ! -d "venv" ]; then
|
|
|
|
|
echo "⚠️ Telegram bot venv not found - creating..."
|
|
|
|
|
@@ -262,7 +262,7 @@ echo ""
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
echo "📝 Telegram Bot Integration Tests..."
|
|
|
|
|
cd reports-app/telegram-bot
|
|
|
|
|
cd backend/modules/telegram
|
|
|
|
|
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
|
|
|
|
|
@@ -280,7 +280,7 @@ echo ""
|
|
|
|
|
### Frontend Unit Tests (Playwright - E2E with API Mocking)
|
|
|
|
|
```bash
|
|
|
|
|
echo "📝 Frontend Unit/E2E Tests (Playwright with API mocking)..."
|
|
|
|
|
cd reports-app/frontend
|
|
|
|
|
cd src
|
|
|
|
|
|
|
|
|
|
# Ensure dependencies are installed
|
|
|
|
|
if [ ! -d "node_modules" ]; then
|
|
|
|
|
@@ -720,7 +720,7 @@ echo "========================================================"
|
|
|
|
|
|
|
|
|
|
echo " → Running Playwright integration tests against real backend..."
|
|
|
|
|
|
|
|
|
|
cd reports-app/frontend
|
|
|
|
|
cd src
|
|
|
|
|
|
|
|
|
|
# Create integration test configuration for real backend
|
|
|
|
|
cat > playwright.integration.config.js << 'EOF'
|
|
|
|
|
@@ -979,9 +979,9 @@ echo "════════════════════════
|
|
|
|
|
- **Test Credentials**: `MARIUS M` / `123`
|
|
|
|
|
- **API Structure**: All endpoints use query params (`?company=110`), not path params
|
|
|
|
|
- **Test Structure**:
|
|
|
|
|
- Backend: `reports-app/backend/tests/` (~36 Oracle real tests)
|
|
|
|
|
- Telegram Bot Pure: `reports-app/telegram-bot/tests/` (~77 pure tests)
|
|
|
|
|
- Telegram Bot Integration: `reports-app/telegram-bot/tests/` (~25 real tests, marked `@pytest.mark.integration`)
|
|
|
|
|
- Backend: `backend/tests/` (~36 Oracle real tests)
|
|
|
|
|
- Telegram Bot Pure: `backend/modules/telegram/tests/` (~77 pure tests)
|
|
|
|
|
- Telegram Bot Integration: `backend/modules/telegram/tests/` (~25 real tests, marked `@pytest.mark.integration`)
|
|
|
|
|
|
|
|
|
|
## Quick Run
|
|
|
|
|
|
|
|
|
|
|