- Created comprehensive API reference documentation covering authentication, request/response formats, error handling, and various API endpoints for pose estimation, system management, health checks, and WebSocket interactions. - Developed a detailed deployment guide outlining prerequisites, Docker and Kubernetes deployment steps, cloud deployment options for AWS, GCP, and Azure, and configuration for production environments.
228 lines
6.5 KiB
HTML
228 lines
6.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>WiFi DensePose UI Tests</title>
|
|
<style>
|
|
body {
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
background-color: #f5f5f5;
|
|
}
|
|
|
|
.test-header {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
color: white;
|
|
padding: 30px;
|
|
border-radius: 10px;
|
|
margin-bottom: 30px;
|
|
text-align: center;
|
|
}
|
|
|
|
.test-suite {
|
|
background: white;
|
|
border-radius: 8px;
|
|
margin-bottom: 20px;
|
|
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.test-suite-header {
|
|
background: #f8f9fa;
|
|
padding: 15px 20px;
|
|
border-bottom: 1px solid #dee2e6;
|
|
font-weight: bold;
|
|
color: #495057;
|
|
}
|
|
|
|
.test-case {
|
|
padding: 15px 20px;
|
|
border-bottom: 1px solid #f8f9fa;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.test-case:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.test-name {
|
|
flex: 1;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.test-status {
|
|
padding: 5px 15px;
|
|
border-radius: 20px;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.test-status.pass {
|
|
background: #d4edda;
|
|
color: #155724;
|
|
}
|
|
|
|
.test-status.fail {
|
|
background: #f8d7da;
|
|
color: #721c24;
|
|
}
|
|
|
|
.test-status.pending {
|
|
background: #fff3cd;
|
|
color: #856404;
|
|
}
|
|
|
|
.test-summary {
|
|
background: white;
|
|
border-radius: 8px;
|
|
padding: 20px;
|
|
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.summary-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
gap: 20px;
|
|
margin-top: 15px;
|
|
}
|
|
|
|
.stat-item {
|
|
text-align: center;
|
|
padding: 15px;
|
|
border-radius: 8px;
|
|
background: #f8f9fa;
|
|
}
|
|
|
|
.stat-number {
|
|
font-size: 24px;
|
|
font-weight: bold;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 12px;
|
|
color: #6c757d;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.run-tests-btn {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
color: white;
|
|
border: none;
|
|
padding: 12px 30px;
|
|
border-radius: 25px;
|
|
font-weight: bold;
|
|
cursor: pointer;
|
|
transition: transform 0.2s ease;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.run-tests-btn:hover {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.run-tests-btn:disabled {
|
|
opacity: 0.6;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.test-output {
|
|
background: #f8f9fa;
|
|
border: 1px solid #dee2e6;
|
|
border-radius: 8px;
|
|
padding: 15px;
|
|
margin-top: 20px;
|
|
font-family: 'Courier New', monospace;
|
|
font-size: 12px;
|
|
white-space: pre-wrap;
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.controls {
|
|
margin-bottom: 20px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="test-header">
|
|
<h1>WiFi DensePose UI Test Suite</h1>
|
|
<p>Comprehensive testing for the modular UI components and API integration</p>
|
|
</div>
|
|
|
|
<div class="controls">
|
|
<button id="runAllTests" class="run-tests-btn">Run All Tests</button>
|
|
<button id="runUnitTests" class="run-tests-btn">Run Unit Tests</button>
|
|
<button id="runIntegrationTests" class="run-tests-btn">Run Integration Tests</button>
|
|
<button id="clearResults" class="run-tests-btn" style="background: #dc3545;">Clear Results</button>
|
|
</div>
|
|
|
|
<div class="test-summary">
|
|
<h3>Test Summary</h3>
|
|
<div class="summary-stats">
|
|
<div class="stat-item">
|
|
<div class="stat-number" id="totalTests">0</div>
|
|
<div class="stat-label">Total Tests</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-number" id="passedTests" style="color: #28a745;">0</div>
|
|
<div class="stat-label">Passed</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-number" id="failedTests" style="color: #dc3545;">0</div>
|
|
<div class="stat-label">Failed</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-number" id="pendingTests" style="color: #ffc107;">0</div>
|
|
<div class="stat-label">Pending</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">API Configuration Tests</div>
|
|
<div id="apiConfigTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">API Service Tests</div>
|
|
<div id="apiServiceTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">WebSocket Service Tests</div>
|
|
<div id="websocketServiceTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">Pose Service Tests</div>
|
|
<div id="poseServiceTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">Health Service Tests</div>
|
|
<div id="healthServiceTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">UI Component Tests</div>
|
|
<div id="uiComponentTests"></div>
|
|
</div>
|
|
|
|
<div class="test-suite">
|
|
<div class="test-suite-header">Integration Tests</div>
|
|
<div id="integrationTests"></div>
|
|
</div>
|
|
|
|
<div class="test-output" id="testOutput" style="display: none;"></div>
|
|
|
|
<script type="module" src="test-runner.js"></script>
|
|
</body>
|
|
</html> |