'use client' /** * Test Dashboard - Zentrales Test-Registry * * Aggregiert alle 195+ Tests aus allen Services: * - Go Unit Tests (~57) * - Python Tests (~50) * - BQAS Golden (97) * - BQAS RAG (~20) * - TypeScript Jest (~8) * - E2E Playwright (~5) */ import React, { useState, useEffect, useCallback, useRef } from 'react' import Link from 'next/link' import { PagePurpose } from '@/components/common/PagePurpose' import type { ServiceTestInfo, TestRegistryStats, TestRun, CoverageData, TabType, Toast, FailedTest, BacklogItem, BacklogPriority, BacklogStatus, TrendDataPoint, } from './types' // API Configuration const API_BASE = '/api/tests' // ============================================================================== // Toast Notification Component // ============================================================================== function ToastContainer({ toasts, onDismiss }: { toasts: Toast[]; onDismiss: (id: number) => void }) { return (
{title}
{value}
{subtitle &&{subtitle}
}{service.port ? `Port ${service.port}` : 'Library'} • {service.language}
{service.total_tests}
Tests
{service.passed_tests}
Bestanden
{service.failed_tests}
Fehler
| ID | Service | Zeitpunkt | Tests | Bestanden | Dauer | Status |
|---|---|---|---|---|---|---|
| {run.id.slice(-8)} | {run.service} | {new Date(run.started_at).toLocaleString('de-DE')} | {run.total_tests} | {run.passed_tests} / {run.failed_tests} | {run.duration_seconds.toFixed(1)}s | {run.status} |
Das Test Dashboard ist die zentrale Uebersicht fuer alle 195+ Tests im Breakpilot-System. Es aggregiert Tests aus verschiedenen Services (Go, Python, TypeScript) ohne diese physisch zu migrieren. Tests bleiben an ihren konventionellen Orten, werden aber hier zentral ueberwacht und ausgefuehrt.
consent-service, billing-service, school-service, edu-search-service, ai-compliance-sdk
backend, voice-service, klausur-service, geo-service
Validierte Referenz-Tests mit LLM-Judge fuer Intent-Erkennung
RAG-Judge Tests fuer Retrieval, Citations, Hallucination-Control
Website Unit Tests fuer React-Komponenten
End-to-End Tests fuer kritische User Flows
{`┌────────────────────────────────────────────────────────────┐
│ Admin-v2 Test Dashboard │
│ /infrastructure/tests │
├────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Unit Tests │ │ Integration │ │ BQAS │ │
│ │ (Go, Py) │ │ Tests │ │ (LLM/RAG) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Test Registry API │ │
│ │ /backend/api/tests/registry.py │ │
│ └────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────┘
Tests bleiben wo sie sind:
- /consent-service/internal/**/*_test.go
- /backend/tests/test_*.py
- /voice-service/tests/bqas/`}
Daten-Fluss: Woodpecker CI → POST /api/tests/ci-result → PostgreSQL → Test Dashboard
BQAS Dashboard
Detaillierte BQAS-Metriken und Trend-Analyse
CI/CD Pipelines
Gitea Actions und automatische Test-Planung
{test.file_path}
Fehlermeldung:
{test.error_message || 'Keine Details verfuegbar'}
💡 Loesungsvorschlag:
{test.suggestion}
{openCount}
Offene Fehler
{inProgressCount}
In Arbeit
{fixedCount}
Behoben
{flakyCount}
Flaky
{criticalCount + highCount}
Kritisch/Hoch
{filterStatus === 'open' ? 'Keine offenen Fehler! 🎉' : 'Keine Tests mit diesem Filter gefunden.'}
{filterStatus === 'open' && (Alle Tests bestanden. Bereit fuer Go-Live!
)}Workflow fuer fehlgeschlagene Tests:
Golden Suite, RAG Tests und Synthetic Tests
Tipp: Das vollstaendige BQAS Dashboard unter /ai/test-quality bietet detaillierte Metriken, Trend-Analyse und Intent-spezifische Scores.