feat: Add LTI launch, lesson preview, course progress, bookmarks, and asset management features.

This commit is contained in:
2026-02-23 15:43:45 -03:00
parent f365e585a2
commit 7f7ea3d70c
45 changed files with 5250 additions and 697 deletions
+22 -22
View File
@@ -1,24 +1,24 @@
#!/bin/bash
# 1. Verify Juan Login
echo "Testing Login for juan.allende@gmail.com..."
# 1. Verificar Login de Juan
echo "Probando Login para juan.allende@gmail.com..."
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST http://localhost:3001/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"juan.allende@gmail.com","password":"password123"}')
if [ "$HTTP_CODE" -eq 200 ]; then
echo "SUCCESS: Login worked for juan.allende@gmail.com with password123"
echo "ÉXITO: El login funcionó para juan.allende@gmail.com con password123"
else
echo "FAIL: Login failed with status $HTTP_CODE"
# Print body for debugging
echo "FALLO: El login falló con estado $HTTP_CODE"
# Imprimir cuerpo para depuración
curl -s -X POST http://localhost:3001/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"juan.allende@gmail.com","password":"password123"}'
echo ""
fi
# 3. Verify Organization Context (Course Scoping)
echo "Testing Course Scoping by Organization..."
# Login to get token
# 3. Verificar Contexto de Organización (Scoping de Cursos)
echo "Probando Scoping de Cursos por Organización..."
# Login para obtener token
USER_DATA=$(curl -s -X POST http://localhost:3001/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"juan.allende@gmail.com","password":"password123"}')
@@ -26,40 +26,40 @@ TOKEN=$(echo "$USER_DATA" | jq -r '.token')
ORG_ID=$(echo "$USER_DATA" | jq -r '.user.organization_id')
if [ "$TOKEN" != "null" ]; then
echo "SUCCESS: Got token for juan.allende@gmail.com"
# Try to list courses
echo "ÉXITO: Se obtuvo el token para juan.allende@gmail.com"
# Intentar listar cursos
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X GET http://localhost:3001/courses \
-H "Authorization: Bearer $TOKEN")
if [ "$HTTP_CODE" -eq 200 ]; then
echo "SUCCESS: Courses retrieved successfully with organization scope"
echo "ÉXITO: Cursos recuperados correctamente con scope de organización"
else
echo "FAIL: Failed to retrieve courses (Status: $HTTP_CODE)"
echo "FALLO: Error al recuperar cursos (Estado: $HTTP_CODE)"
fi
# 4. Verify Admin Context Switching (X-Organization-Id)
# Create a dummy organization to test switching
echo "Testing Admin Context Switching (X-Organization-Id)..."
# 4. Verificar Cambio de Contexto de Admin (X-Organization-Id)
# Crear una organización ficticia para probar el cambio
echo "Probando Cambio de Contexto de Admin (X-Organization-Id)..."
NEW_ORG_ID=$(curl -s -X POST http://localhost:3001/organizations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Context Switching Test"}' | jq -r '.id')
-d '{"name": "Prueba de Cambio de Contexto"}' | jq -r '.id')
if [ "$NEW_ORG_ID" != "null" ]; then
echo "SUCCESS: New organization created ($NEW_ORG_ID)"
# Try to list courses using the new org context
echo "ÉXITO: Nueva organización creada ($NEW_ORG_ID)"
# Intentar listar cursos usando el nuevo contexto de org
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X GET http://localhost:3001/courses \
-H "Authorization: Bearer $TOKEN" \
-H "X-Organization-Id: $NEW_ORG_ID")
if [ "$HTTP_CODE" -eq 200 ]; then
echo "SUCCESS: Context switching worked via X-Organization-Id"
echo "ÉXITO: El cambio de contexto funcionó vía X-Organization-Id"
else
echo "FAIL: Context switching failed (Status: $HTTP_CODE)"
echo "FALLO: El cambio de contexto falló (Estado: $HTTP_CODE)"
fi
else
echo "FAIL: Could not create test organization"
echo "FALLO: No se pudo crear la organización de prueba"
fi
else
echo "FAIL: Could not get token for testing organization context"
echo "FALLO: No se pudo obtener el token para probar el contexto de organización"
fi