feat: Implementar suite completa de tests de integración v1.9.0
- Agregar 46 tests de integración (auth, multi-tenancy, tickets) - Crear estructura organizada tests/integration/ y tests/unit/ - Implementar fixtures completas para testing con BD separada - Agregar conftest_integration.py con setup async - Mover scripts PowerShell de testing a tests/scripts/ - Actualizar pytest.ini con markers y configuración - Crear run_tests.sh script ejecutable para testing - Documentación completa en README_TESTS.md - Fix: Remover opciones obsoletas de TypeScript (importsNotUsedAsValues) Tests implementados: - Authentication: 15 tests (login, refresh, permisos, seguridad) - Multi-tenancy: 13 tests (aislamiento, validaciones, seguridad B2B) - Tickets: 18 tests (CRUD, filtros, permisos por rol) - Unit: 10 tests básicos - Verificación: 8 tests de setup Base de datos de testing: servicemanager_test (separada de producción) Cobertura estimada: ~40% (desde 5%) Próximos pasos: Agregar tests de SLA, attachments, auditoría
This commit is contained in:
0
backend/tests/scripts/__init__.py
Normal file
0
backend/tests/scripts/__init__.py
Normal file
174
backend/tests/scripts/test_frontend_integration.ps1
Normal file
174
backend/tests/scripts/test_frontend_integration.ps1
Normal file
@@ -0,0 +1,174 @@
|
||||
# Script de verificación de integración frontend-backend
|
||||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||
Write-Host " VERIFICACION FRONTEND-BACKEND" -ForegroundColor Cyan
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
|
||||
# Verificar servicios
|
||||
Write-Host "1. Verificando servicios Docker..." -ForegroundColor Yellow
|
||||
$services = docker ps --filter "name=servicemanager" --format "{{.Names}}: {{.Status}}"
|
||||
Write-Host $services -ForegroundColor Green
|
||||
|
||||
# Login y obtener token
|
||||
Write-Host "`n2. Autenticando en el backend..." -ForegroundColor Yellow
|
||||
$loginBody = @{
|
||||
email = "admin@aduanasoft.com"
|
||||
password = "admin123"
|
||||
tenant_slug = "aduanasoft"
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$loginResponse = Invoke-RestMethod -Uri "http://localhost:8000/v1/auth/login" `
|
||||
-Method POST `
|
||||
-ContentType "application/json" `
|
||||
-Body $loginBody
|
||||
|
||||
$token = $loginResponse.access_token
|
||||
Write-Host "OK - Token obtenido" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "ERROR - No se pudo autenticar: $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
$headers = @{
|
||||
"Authorization" = "Bearer $token"
|
||||
}
|
||||
|
||||
# Test 1: Verificar Tickets con SLA
|
||||
Write-Host "`n3. Verificando tickets con SLA..." -ForegroundColor Yellow
|
||||
try {
|
||||
$tickets = Invoke-RestMethod -Uri "http://localhost:8000/v1/tickets/" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
$ticketsWithSLA = $tickets | Where-Object { $_.sla_resolution_due -ne $null }
|
||||
Write-Host " Total tickets: $($tickets.Count)" -ForegroundColor Cyan
|
||||
Write-Host " Tickets con SLA: $($ticketsWithSLA.Count)" -ForegroundColor Cyan
|
||||
|
||||
if ($ticketsWithSLA.Count -gt 0) {
|
||||
$sampleTicket = $ticketsWithSLA[0]
|
||||
Write-Host " Ejemplo ticket: $($sampleTicket.ticket_number)" -ForegroundColor White
|
||||
Write-Host " - SLA Respuesta: $($sampleTicket.sla_response_due)" -ForegroundColor White
|
||||
Write-Host " - SLA Resolucion: $($sampleTicket.sla_resolution_due)" -ForegroundColor White
|
||||
Write-Host "OK - Tickets con SLA encontrados" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "ADVERTENCIA - No hay tickets con SLA configurado" -ForegroundColor Yellow
|
||||
}
|
||||
} catch {
|
||||
Write-Host "ERROR - No se pudieron obtener tickets: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 2: Verificar Categorías con configuración SLA
|
||||
Write-Host "`n4. Verificando categorias con SLA..." -ForegroundColor Yellow
|
||||
try {
|
||||
$categories = Invoke-RestMethod -Uri "http://localhost:8000/v1/categories/" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
Write-Host " Total categorias: $($categories.Count)" -ForegroundColor Cyan
|
||||
foreach ($cat in $categories) {
|
||||
Write-Host " - $($cat.name): $($cat.sla_response_hours)h respuesta / $($cat.sla_resolution_hours)h resolucion" -ForegroundColor White
|
||||
}
|
||||
Write-Host "OK - Categorias configuradas" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "ERROR - No se pudieron obtener categorias: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 3: Verificar Tenants
|
||||
Write-Host "`n5. Verificando tenants..." -ForegroundColor Yellow
|
||||
try {
|
||||
$tenants = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
Write-Host " Total tenants: $($tenants.Count)" -ForegroundColor Cyan
|
||||
foreach ($tenant in $tenants) {
|
||||
Write-Host " - $($tenant.name) [$($tenant.status)]" -ForegroundColor White
|
||||
Write-Host " Email: $($tenant.contact_email)" -ForegroundColor Gray
|
||||
Write-Host " Telefono: $($tenant.contact_phone)" -ForegroundColor Gray
|
||||
}
|
||||
Write-Host "OK - Tenants listados" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "ERROR - No se pudieron obtener tenants: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 4: Verificar Auditoría
|
||||
Write-Host "`n6. Verificando logs de auditoria..." -ForegroundColor Yellow
|
||||
try {
|
||||
$auditLogs = Invoke-RestMethod -Uri "http://localhost:8000/v1/audit/?limit=10" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
Write-Host " Ultimos logs: $($auditLogs.items.Count)" -ForegroundColor Cyan
|
||||
|
||||
# Buscar logs de categoría y tickets
|
||||
$categoryLogs = $auditLogs.items | Where-Object { $_.entity_type -eq 'category' }
|
||||
$ticketLogs = $auditLogs.items | Where-Object { $_.entity_type -eq 'ticket' }
|
||||
|
||||
Write-Host " Logs de categorias: $($categoryLogs.Count)" -ForegroundColor White
|
||||
Write-Host " Logs de tickets: $($ticketLogs.Count)" -ForegroundColor White
|
||||
|
||||
if ($categoryLogs.Count -gt 0) {
|
||||
Write-Host "OK - Auditoria de categorias funcionando" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "ADVERTENCIA - No hay logs de categorias recientes" -ForegroundColor Yellow
|
||||
}
|
||||
} catch {
|
||||
Write-Host "ERROR - No se pudieron obtener logs de auditoria: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 5: Verificar Workers Celery
|
||||
Write-Host "`n7. Verificando workers Celery..." -ForegroundColor Yellow
|
||||
$workerStatus = docker ps --filter "name=servicemanager-worker" --format "{{.Status}}"
|
||||
$beatStatus = docker ps --filter "name=servicemanager-beat" --format "{{.Status}}"
|
||||
|
||||
if ($workerStatus -match "Up") {
|
||||
Write-Host " Worker: $workerStatus" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " Worker: ERROR - No esta corriendo" -ForegroundColor Red
|
||||
}
|
||||
|
||||
if ($beatStatus -match "Up") {
|
||||
Write-Host " Beat: $beatStatus" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " Beat: ERROR - No esta corriendo" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 6: Verificar Frontend Internal
|
||||
Write-Host "`n8. Verificando Frontend Internal (3001)..." -ForegroundColor Yellow
|
||||
try {
|
||||
$response = Invoke-WebRequest -Uri "http://localhost:3001" -TimeoutSec 5 -UseBasicParsing
|
||||
if ($response.StatusCode -eq 200) {
|
||||
Write-Host " Frontend Internal: OK (Status $($response.StatusCode))" -ForegroundColor Green
|
||||
}
|
||||
} catch {
|
||||
Write-Host " Frontend Internal: ERROR - $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Test 7: Verificar Frontend Client
|
||||
Write-Host "`n9. Verificando Frontend Client (3000)..." -ForegroundColor Yellow
|
||||
try {
|
||||
$response = Invoke-WebRequest -Uri "http://localhost:3000" -TimeoutSec 5 -UseBasicParsing
|
||||
if ($response.StatusCode -eq 200) {
|
||||
Write-Host " Frontend Client: OK (Status $($response.StatusCode))" -ForegroundColor Green
|
||||
}
|
||||
} catch {
|
||||
Write-Host " Frontend Client: ERROR - $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Resumen
|
||||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||
Write-Host " RESUMEN DE VERIFICACION" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host "OK - Backend API funcionando" -ForegroundColor Green
|
||||
Write-Host "OK - Autenticacion JWT operativa" -ForegroundColor Green
|
||||
Write-Host "OK - SLA automatico implementado" -ForegroundColor Green
|
||||
Write-Host "OK - Auditoria de operaciones activa" -ForegroundColor Green
|
||||
Write-Host "OK - Actualizacion de tenants corregida" -ForegroundColor Green
|
||||
Write-Host "OK - Workers Celery ejecutandose" -ForegroundColor Green
|
||||
Write-Host "OK - Frontends accesibles" -ForegroundColor Green
|
||||
Write-Host "`nTodos los cambios integrados correctamente!" -ForegroundColor Green
|
||||
Write-Host "Puedes acceder a:" -ForegroundColor Cyan
|
||||
Write-Host " - Frontend Interno: http://localhost:3001" -ForegroundColor White
|
||||
Write-Host " - Frontend Cliente: http://localhost:3000" -ForegroundColor White
|
||||
Write-Host " - Backend API Docs: http://localhost:8000/docs" -ForegroundColor White
|
||||
Write-Host ""
|
||||
142
backend/tests/scripts/test_manual.ps1
Normal file
142
backend/tests/scripts/test_manual.ps1
Normal file
@@ -0,0 +1,142 @@
|
||||
# Script de Pruebas Manuales - ServiceManagerWeb
|
||||
# Fecha: 2026-02-17
|
||||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||
Write-Host "PRUEBAS MANUALES - ServiceManagerWeb" -ForegroundColor Cyan
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
|
||||
# PRUEBA 1: Login
|
||||
Write-Host "PRUEBA 1: Login y obtener token..." -ForegroundColor Yellow
|
||||
|
||||
$loginBody = @{
|
||||
email = "admin@aduanasoft.com"
|
||||
password = "admin123"
|
||||
tenant_slug = "aduanasoft-demo"
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$response = Invoke-RestMethod -Uri "http://localhost:8000/v1/auth/login" -Method Post -ContentType "application/json" -Body $loginBody
|
||||
$token = $response.access_token
|
||||
Write-Host "[OK] Token obtenido exitosamente" -ForegroundColor Green
|
||||
$headers = @{ "Authorization" = "Bearer $token" }
|
||||
} catch {
|
||||
Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit
|
||||
}
|
||||
|
||||
# PRUEBA 2: Listar categorias
|
||||
Write-Host "`nPRUEBA 2: Listar categorias..." -ForegroundColor Yellow
|
||||
|
||||
try {
|
||||
$categories = Invoke-RestMethod -Uri "http://localhost:8000/v1/categories/" -Method Get -Headers $headers
|
||||
Write-Host "[OK] Categorias encontradas: $($categories.Count)" -ForegroundColor Green
|
||||
$categoryId = $categories[0].id
|
||||
Write-Host "Usaremos: $($categories[0].name) (ID: $categoryId)" -ForegroundColor Gray
|
||||
} catch {
|
||||
Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# PRUEBA 3: Crear ticket con SLA
|
||||
Write-Host "`nPRUEBA 3: Crear ticket con SLA automatico..." -ForegroundColor Yellow
|
||||
|
||||
$ticketBody = @{
|
||||
subject = "Prueba SLA $(Get-Date -Format 'HH:mm:ss')"
|
||||
description = "Ticket de prueba para verificar calculo automatico de SLA"
|
||||
category_id = $categoryId
|
||||
priority = "HIGH"
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$newTicket = Invoke-RestMethod -Uri "http://localhost:8000/v1/tickets/" -Method Post -ContentType "application/json" -Headers $headers -Body $ticketBody
|
||||
Write-Host "[OK] Ticket creado: $($newTicket.ticket_number)" -ForegroundColor Green
|
||||
$ticketId = $newTicket.id
|
||||
Write-Host "ID: $ticketId" -ForegroundColor Gray
|
||||
} catch {
|
||||
Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# PRUEBA 4: Verificar ticket en BD
|
||||
Write-Host "`nPRUEBA 4: Verificar ticket en base de datos..." -ForegroundColor Yellow
|
||||
Start-Sleep -Seconds 2
|
||||
|
||||
Write-Host "Consultando BD..." -ForegroundColor Gray
|
||||
docker exec servicemanager-db psql -U servicemanager -d servicemanager -c "SELECT ticket_number, created_at, sla_response_due, sla_resolution_due FROM tickets WHERE id = '$ticketId'::uuid;"
|
||||
|
||||
# PRUEBA 5: Verificar auditoria del ticket
|
||||
Write-Host "`nPRUEBA 5: Verificar auditoria del ticket..." -ForegroundColor Yellow
|
||||
|
||||
Write-Host "Consultando audit logs..." -ForegroundColor Gray
|
||||
docker exec servicemanager-db psql -U servicemanager -d servicemanager -c "SELECT action, resource_type, created_at FROM audit_logs WHERE resource_id = '$ticketId'::uuid;"
|
||||
|
||||
# PRUEBA 6: Crear categoria nueva
|
||||
Write-Host "`nPRUEBA 6: Crear nueva categoria (probar auditoria)..." -ForegroundColor Yellow
|
||||
|
||||
$newCategoryBody = @{
|
||||
name = "Prueba Auditoria $(Get-Date -Format 'HH:mm:ss')"
|
||||
description = "Categoria de prueba para verificar auditoria"
|
||||
sla_response_hours = 6
|
||||
sla_resolution_hours = 48
|
||||
is_active = $true
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$newCategory = Invoke-RestMethod -Uri "http://localhost:8000/v1/categories/" -Method Post -ContentType "application/json" -Headers $headers -Body $newCategoryBody
|
||||
Write-Host "[OK] Categoria creada: $($newCategory.name)" -ForegroundColor Green
|
||||
$newCategoryId = $newCategory.id
|
||||
Write-Host "ID: $newCategoryId" -ForegroundColor Gray
|
||||
} catch {
|
||||
Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# PRUEBA 7: Verificar auditoria de CREATE
|
||||
Write-Host "`nPRUEBA 7: Verificar auditoria de categoria CREATE..." -ForegroundColor Yellow
|
||||
Start-Sleep -Seconds 2
|
||||
|
||||
Write-Host "Consultando audit logs..." -ForegroundColor Gray
|
||||
docker exec servicemanager-db psql -U servicemanager -d servicemanager -c "SELECT action, resource_type, created_at FROM audit_logs WHERE resource_id = '$newCategoryId'::uuid AND action = 'category.create';"
|
||||
|
||||
# PRUEBA 8: Actualizar categoria
|
||||
Write-Host "`nPRUEBA 8: Actualizar categoria (probar auditoria UPDATE)..." -ForegroundColor Yellow
|
||||
|
||||
$updateBody = @{
|
||||
sla_response_hours = 12
|
||||
sla_resolution_hours = 72
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$updated = Invoke-RestMethod -Uri "http://localhost:8000/v1/categories/$newCategoryId" -Method Put -ContentType "application/json" -Headers $headers -Body $updateBody
|
||||
Write-Host "[OK] Categoria actualizada" -ForegroundColor Green
|
||||
Write-Host "Nuevo Response: $($updated.sla_response_hours)h, Resolution: $($updated.sla_resolution_hours)h" -ForegroundColor Gray
|
||||
} catch {
|
||||
Write-Host "[ERROR] $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# PRUEBA 9: Verificar auditoria de UPDATE
|
||||
Write-Host "`nPRUEBA 9: Verificar auditoria de categoria UPDATE..." -ForegroundColor Yellow
|
||||
Start-Sleep -Seconds 2
|
||||
|
||||
Write-Host "Consultando audit logs..." -ForegroundColor Gray
|
||||
docker exec servicemanager-db psql -U servicemanager -d servicemanager -c "SELECT action, created_at FROM audit_logs WHERE resource_id = '$newCategoryId'::uuid AND action = 'category.update';"
|
||||
|
||||
# PRUEBA 10: Resumen final
|
||||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||
Write-Host "RESUMEN FINAL" -ForegroundColor Cyan
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
|
||||
$totalTickets = docker exec servicemanager-db psql -U servicemanager -d servicemanager -t -c "SELECT COUNT(*) FROM tickets;"
|
||||
$ticketsWithSLA = docker exec servicemanager-db psql -U servicemanager -d servicemanager -t -c "SELECT COUNT(*) FROM tickets WHERE sla_response_due IS NOT NULL;"
|
||||
$totalAudits = docker exec servicemanager-db psql -U servicemanager -d servicemanager -t -c "SELECT COUNT(*) FROM audit_logs;"
|
||||
$categoryAudits = docker exec servicemanager-db psql -U servicemanager -d servicemanager -t -c "SELECT COUNT(*) FROM audit_logs WHERE action LIKE 'category.%';"
|
||||
|
||||
Write-Host "Tickets totales: $($totalTickets.Trim())"
|
||||
Write-Host "Tickets con SLA calculado: $($ticketsWithSLA.Trim())" -ForegroundColor Green
|
||||
Write-Host "Audit logs totales: $($totalAudits.Trim())"
|
||||
Write-Host "Audit logs de categorias: $($categoryAudits.Trim())" -ForegroundColor Green
|
||||
|
||||
Write-Host "`n========================================" -ForegroundColor Green
|
||||
Write-Host "VERIFICACIONES COMPLETADAS" -ForegroundColor Green
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host "[OK] Calculo automatico de SLA" -ForegroundColor Green
|
||||
Write-Host "[OK] Auditoria de tickets" -ForegroundColor Green
|
||||
Write-Host "[OK] Auditoria de categorias (CREATE)" -ForegroundColor Green
|
||||
Write-Host "[OK] Auditoria de categorias (UPDATE)" -ForegroundColor Green
|
||||
Write-Host "`nRevisa los resultados arriba para confirmar que todo funciona.`n" -ForegroundColor White
|
||||
101
backend/tests/scripts/test_tenant_update.ps1
Normal file
101
backend/tests/scripts/test_tenant_update.ps1
Normal file
@@ -0,0 +1,101 @@
|
||||
# Script de prueba para actualización de tenants
|
||||
Write-Host "`n=== TEST: Tenant Update Endpoint ===" -ForegroundColor Cyan
|
||||
|
||||
# 1. Login como admin
|
||||
Write-Host "`n1. Login como admin..." -ForegroundColor Yellow
|
||||
$loginBody = @{
|
||||
email = "admin@aduanasoft.com"
|
||||
password = "admin123"
|
||||
tenant_slug = "aduanasoft"
|
||||
} | ConvertTo-Json
|
||||
|
||||
$loginResponse = Invoke-RestMethod -Uri "http://localhost:8000/v1/auth/login" `
|
||||
-Method POST `
|
||||
-ContentType "application/json" `
|
||||
-Body $loginBody
|
||||
|
||||
$token = $loginResponse.access_token
|
||||
Write-Host "OK - Token obtenido" -ForegroundColor Green
|
||||
|
||||
# 2. Listar tenants para obtener ID
|
||||
Write-Host "`n2. Obteniendo lista de tenants..." -ForegroundColor Yellow
|
||||
$headers = @{
|
||||
"Authorization" = "Bearer $token"
|
||||
}
|
||||
|
||||
$tenants = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
$firstTenant = $tenants[0]
|
||||
|
||||
Write-Host "OK - Tenant encontrado: $($firstTenant.name) (ID: $($firstTenant.id))" -ForegroundColor Green
|
||||
Write-Host " Status actual: $($firstTenant.status)" -ForegroundColor Cyan
|
||||
|
||||
# 3. Actualizar el tenant (cambiar solo el teléfono, mantener status)
|
||||
Write-Host "`n3. Actualizando tenant (test de status)..." -ForegroundColor Yellow
|
||||
|
||||
$updateBody = @{
|
||||
contact_phone = "+52-555-TEST-UPDATE"
|
||||
status = "active" # Probamos que funcione con el enum
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
$updatedTenant = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/$($firstTenant.id)" `
|
||||
-Method PUT `
|
||||
-ContentType "application/json" `
|
||||
-Headers $headers `
|
||||
-Body $updateBody
|
||||
|
||||
Write-Host "OK - Tenant actualizado correctamente" -ForegroundColor Green
|
||||
Write-Host " Telefono: $($updatedTenant.contact_phone)" -ForegroundColor Cyan
|
||||
Write-Host " Status: $($updatedTenant.status)" -ForegroundColor Cyan
|
||||
} catch {
|
||||
Write-Host "ERROR al actualizar tenant:" -ForegroundColor Red
|
||||
Write-Host $_.Exception.Message -ForegroundColor Red
|
||||
Write-Host $_.ErrorDetails.Message -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 4. Verificar que el cambio persiste
|
||||
Write-Host "`n4. Verificando persistencia..." -ForegroundColor Yellow
|
||||
$verifiedTenant = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/$($firstTenant.id)" `
|
||||
-Method GET `
|
||||
-Headers $headers
|
||||
|
||||
if ($verifiedTenant.contact_phone -eq "+52-555-TEST-UPDATE") {
|
||||
Write-Host "OK - Cambios guardados correctamente en BD" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "ERROR - Los cambios NO se guardaron" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 5. Test de cambio de status (ACTIVE -> SUSPENDED -> ACTIVE)
|
||||
Write-Host "`n5. Probando cambio de status..." -ForegroundColor Yellow
|
||||
|
||||
# Cambiar a SUSPENDED
|
||||
$suspendBody = @{
|
||||
status = "suspended"
|
||||
} | ConvertTo-Json
|
||||
|
||||
$suspendedTenant = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/$($firstTenant.id)" `
|
||||
-Method PUT `
|
||||
-ContentType "application/json" `
|
||||
-Headers $headers `
|
||||
-Body $suspendBody
|
||||
Write-Host " -> Cambiado a: $($suspendedTenant.status)" -ForegroundColor Yellow
|
||||
|
||||
# Volver a ACTIVE
|
||||
$activeBody = @{
|
||||
status = "active"
|
||||
} | ConvertTo-Json
|
||||
|
||||
$activeTenant = Invoke-RestMethod -Uri "http://localhost:8000/v1/tenants/$($firstTenant.id)" `
|
||||
-Method PUT `
|
||||
-ContentType "application/json" `
|
||||
-Headers $headers `
|
||||
-Body $activeBody
|
||||
Write-Host " -> Cambiado a: $($activeTenant.status)" -ForegroundColor Green
|
||||
|
||||
Write-Host "`n=== OK - TODAS LAS PRUEBAS PASARON ===" -ForegroundColor Green
|
||||
Write-Host "El endpoint de actualizacion de tenants funciona correctamente" -ForegroundColor Cyan
|
||||
Reference in New Issue
Block a user