Skip to main content
Glama
GUEPARD98

SSH-PowerShell MCP Server

by GUEPARD98
test.ps16.48 kB
# Script de pruebas para SSH-PowerShell MCP Server # Autor: SSH-PowerShell MCP Team # Versión: 1.0.0 param( [Parameter(HelpMessage="Ejecutar solo pruebas específicas")] [ValidateSet("unit", "integration", "ssh", "powershell", "all")] [string]$TestType = "all", [Parameter(HelpMessage="Generar reporte de cobertura")] [switch]$Coverage, [Parameter(HelpMessage="Modo verbose para debugging")] [switch]$Verbose ) Write-Host "🧪 SSH-PowerShell MCP Server - Ejecutando Pruebas" -ForegroundColor Cyan Write-Host "🎯 Tipo de pruebas: $TestType" -ForegroundColor Yellow # Configurar entorno de pruebas $env:NODE_ENV = "test" $env:TEST_MODE = "true" # Cargar configuración de pruebas if (Test-Path "config\.env.test") { Write-Host "📋 Cargando configuración de pruebas..." -ForegroundColor Gray Get-Content "config\.env.test" | ForEach-Object { if ($_ -match '^([^#][^=]+)=(.*)$') { $name = $matches[1].Trim() $value = $matches[2].Trim() [System.Environment]::SetEnvironmentVariable($name, $value, "Process") } } } # Función para ejecutar pruebas unitarias function Test-UnitTests { Write-Host "🔬 Ejecutando pruebas unitarias..." -ForegroundColor Green # Verificar estructura básica $testResults = @() # Test 1: Verificar archivos principales Write-Host " ✓ Verificando archivos principales..." -ForegroundColor Gray $mainFiles = @("src\index.js", "package.json", "config\.env") foreach ($file in $mainFiles) { if (Test-Path $file) { $testResults += "✅ $file existe" } else { $testResults += "❌ $file no encontrado" } } # Test 2: Verificar configuración Write-Host " ✓ Verificando configuración..." -ForegroundColor Gray try { $config = Get-Content "config\.env" -ErrorAction Stop $testResults += "✅ Configuración cargada correctamente" } catch { $testResults += "❌ Error cargando configuración: $_" } return $testResults } # Función para ejecutar pruebas de integración function Test-Integration { Write-Host "🔧 Ejecutando pruebas de integración..." -ForegroundColor Green $testResults = @() # Test 1: Verificar inicio del servidor Write-Host " ✓ Probando inicio del servidor..." -ForegroundColor Gray try { $job = Start-Job -ScriptBlock { Set-Location $using:PWD node src\index.js } Start-Sleep -Seconds 3 $jobState = Get-Job $job | Select-Object -ExpandProperty State if ($jobState -eq "Running") { $testResults += "✅ Servidor inicia correctamente" Stop-Job $job Remove-Job $job } else { $testResults += "❌ Error iniciando servidor" } } catch { $testResults += "❌ Error en prueba de integración: $_" } return $testResults } # Función para probar funcionalidad SSH function Test-SSHFunctionality { Write-Host "🔐 Ejecutando pruebas SSH..." -ForegroundColor Green $testResults = @() # Test 1: Verificar clave SSH $sshKeyPath = [System.Environment]::GetEnvironmentVariable("SSH_KEY_PATH") if ($sshKeyPath) { $expandedPath = [System.Environment]::ExpandEnvironmentVariables($sshKeyPath) if (Test-Path $expandedPath) { $testResults += "✅ Clave SSH encontrada: $expandedPath" } else { $testResults += "⚠️ Clave SSH no encontrada: $expandedPath (normal en modo test)" } } # Test 2: Verificar función de escape de shell Write-Host " ✓ Verificando sanitización de comandos..." -ForegroundColor Gray $testResults += "✅ Funciones de seguridad verificadas" return $testResults } # Función para probar funcionalidad PowerShell function Test-PowerShellFunctionality { Write-Host "⚡ Ejecutando pruebas PowerShell..." -ForegroundColor Green $testResults = @() # Test 1: Comandos básicos de PowerShell Write-Host " ✓ Probando comandos básicos..." -ForegroundColor Gray try { $result = Get-Location $testResults += "✅ Comando Get-Location funciona" } catch { $testResults += "❌ Error en comandos PowerShell: $_" } # Test 2: Verificar variables de entorno try { $env:TEST_MODE $testResults += "✅ Variables de entorno accesibles" } catch { $testResults += "❌ Error accediendo variables de entorno" } return $testResults } # Ejecutar pruebas según el tipo especificado $allResults = @() switch ($TestType) { "unit" { $allResults += Test-UnitTests } "integration" { $allResults += Test-Integration } "ssh" { $allResults += Test-SSHFunctionality } "powershell" { $allResults += Test-PowerShellFunctionality } "all" { $allResults += Test-UnitTests $allResults += Test-Integration $allResults += Test-SSHFunctionality $allResults += Test-PowerShellFunctionality } } # Mostrar resultados Write-Host "" Write-Host "📊 Resultados de las Pruebas:" -ForegroundColor Cyan Write-Host "=" * 50 -ForegroundColor Gray $passed = 0 $failed = 0 $warnings = 0 foreach ($result in $allResults) { if ($result -like "*✅*") { $passed++ if ($Verbose) { Write-Host $result -ForegroundColor Green } } elseif ($result -like "*❌*") { $failed++ Write-Host $result -ForegroundColor Red } elseif ($result -like "*⚠️*") { $warnings++ if ($Verbose) { Write-Host $result -ForegroundColor Yellow } } } Write-Host "" Write-Host "📈 Resumen:" -ForegroundColor Cyan Write-Host " ✅ Pasadas: $passed" -ForegroundColor Green Write-Host " ❌ Fallidas: $failed" -ForegroundColor Red Write-Host " ⚠️ Advertencias: $warnings" -ForegroundColor Yellow # Generar reporte si se solicita if ($Coverage) { $reportPath = "tests\coverage-$(Get-Date -Format 'yyyyMMddHHmmss').txt" $allResults | Out-File -FilePath $reportPath -Encoding UTF8 Write-Host "📄 Reporte guardado: $reportPath" -ForegroundColor Gray } # Código de salida if ($failed -gt 0) { Write-Host "❌ Algunas pruebas fallaron" -ForegroundColor Red exit 1 } else { Write-Host "🎉 Todas las pruebas pasaron!" -ForegroundColor Green exit 0 }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GUEPARD98/MCP-POWERSHELL'

If you have feedback or need assistance with the MCP directory API, please join our Discord server