feat: implementacion de dashboards por rol, soporte de clases virtuales concurrentes en importador de sheets y cartelera del dia
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import requests
|
||||
from app import create_app
|
||||
from app.models.user import User
|
||||
from app.services.jwt_service import JWTService
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
admin = User.query.filter_by(email='admin@edu-space.com').first()
|
||||
token = JWTService.create_access_token(admin)
|
||||
|
||||
cookies = {'auth_token': token}
|
||||
session = requests.Session()
|
||||
session.cookies.update(cookies)
|
||||
|
||||
tests = [
|
||||
# Dashboard y redirecciones
|
||||
('GET /main/dashboard (redirect to /dashboard)', 'http://localhost:3000/main/dashboard', 200, ['Edu-Space Admin', 'Aulas Totales']),
|
||||
('GET /dashboard', 'http://localhost:3000/dashboard', 200, ['Edu-Space Admin', 'Aulas Totales', 'Reservas de Hoy']),
|
||||
|
||||
# Classrooms
|
||||
('GET /classrooms/list_classrooms', 'http://localhost:3000/classrooms/list_classrooms', 200, ['Aulas y Espacios', 'PB-01', 'Edificio Central']),
|
||||
('GET /classrooms/list', 'http://localhost:3000/classrooms/list', 200, ['Aulas y Espacios']),
|
||||
('GET /classrooms/add_classroom (Coupled)', 'http://localhost:3000/classrooms/add_classroom', 200, ['Add Classroom', 'Classroom Information']),
|
||||
('GET /classrooms/add', 'http://localhost:3000/classrooms/add', 200, ['Add Classroom']),
|
||||
|
||||
# Schedule
|
||||
('GET /schedule/calendar_view', 'http://localhost:3000/schedule/calendar_view', 200, ['Reservations Calendar', 'calendar']),
|
||||
('GET /schedule/calendar_data (JSON Feed)', 'http://localhost:3000/schedule/calendar_data', 200, None),
|
||||
('GET /schedule/today', 'http://localhost:3000/schedule/today', 200, ['Reservas']),
|
||||
('GET /schedule/list_reservations', 'http://localhost:3000/schedule/list_reservations', 200, ['Listado de Reservas']),
|
||||
('GET /schedule/add_reservation (Coupled)', 'http://localhost:3000/schedule/add_reservation', 200, ['New Reservation', 'Detalles de la Reserva']),
|
||||
('GET /schedule/add', 'http://localhost:3000/schedule/add', 200, ['New Reservation']),
|
||||
|
||||
# Buildings
|
||||
('GET /buildings/list_buildings (Coupled)', 'http://localhost:3000/buildings/list_buildings', 200, ['Gestión de Edificios', 'Edificio Central']),
|
||||
('GET /buildings', 'http://localhost:3000/buildings', 200, ['Gestión de Edificios']),
|
||||
('GET /buildings/add_building', 'http://localhost:3000/buildings/add_building', 200, ['Nuevo Edificio']),
|
||||
|
||||
# Admin Features
|
||||
('GET /admin/google_sheets_import (Coupled)', 'http://localhost:3000/admin/google_sheets_import', 200, ['Google Sheets', 'Official Schedule Board']),
|
||||
('GET /admin/import', 'http://localhost:3000/admin/import', 200, ['Google Sheets']),
|
||||
('GET /admin/occupancy_metrics (Coupled)', 'http://localhost:3000/admin/occupancy_metrics', 200, ['Ocupación', 'Métricas']),
|
||||
('GET /admin/occupancy-metrics', 'http://localhost:3000/admin/occupancy-metrics', 200, ['Ocupación'])
|
||||
]
|
||||
|
||||
all_passed = True
|
||||
print('=== EJECUTANDO SUITE DE PRUEBAS DE INTEGRACION BFF NODE.JS ===')
|
||||
for name, url, expected_status, expected_texts in tests:
|
||||
r = session.get(url, allow_redirects=True)
|
||||
status_ok = r.status_code == expected_status
|
||||
text_ok = True
|
||||
if 'En Construcción' in r.text:
|
||||
text_ok = False
|
||||
print(f' [FAIL] Fallback "En Construcción" encountered in {url}')
|
||||
if expected_texts:
|
||||
for t in expected_texts:
|
||||
if t.lower() not in r.text.lower():
|
||||
text_ok = False
|
||||
print(f' [FAIL] Expected text "{t}" not found in {url}')
|
||||
if expected_texts is None: # JSON check
|
||||
data = r.json()
|
||||
text_ok = isinstance(data, list) and len(data) > 0
|
||||
if not text_ok:
|
||||
print(f' [FAIL] Expected non-empty JSON list in {url}')
|
||||
|
||||
if status_ok and text_ok:
|
||||
print(f'[PASS] {name} -> Status: {r.status_code} OK')
|
||||
else:
|
||||
all_passed = False
|
||||
print(f'[FAIL] {name} -> Status: {r.status_code} FAIL')
|
||||
|
||||
print('===============================================================')
|
||||
if all_passed:
|
||||
print('TODAS LAS PRUEBAS DE INTEGRACION PASARON SATISFACTORIAMENTE (100% OK)')
|
||||
else:
|
||||
print('SE ENCONTRARON FALLOS EN LA SUITE DE PRUEBAS')
|
||||
print('===============================================================')
|
||||
Reference in New Issue
Block a user