This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
breakpilot-pwa/docs/testing/h5p-service-tests.md
BreakPilot Dev 19855efacc
Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed
feat: BreakPilot PWA - Full codebase (clean push without large binaries)
All services: admin-v2, studio-v2, website, ai-compliance-sdk,
consent-service, klausur-service, voice-service, and infrastructure.
Large PDFs and compiled binaries excluded via .gitignore.
2026-02-11 13:25:58 +01:00

185 lines
4.0 KiB
Markdown

# H5P Service Tests
## Übersicht
Das H5P Service Modul verfügt über umfassende Integration Tests, die alle Endpoints und Content-Typen validieren.
## Test-Coverage
### Module
- **Server Endpoints**: Health, Info, Editor Selection
- **8 Content Type Editors**: Quiz, Video, Presentation, Flashcards, Timeline, Drag & Drop, Fill Blanks, Memory
- **8 Content Type Players**: Interaktive Player für alle Content-Typen
- **Static Files**: Korrekte Bereitstellung von Editoren, Players und Assets
- **Error Handling**: 404-Behandlung für ungültige Routen
## Tests ausführen
### Lokal
```bash
cd h5p-service
npm install
npm test
```
### Im Docker Container
```bash
# Service starten
docker compose -f docker-compose.content.yml up -d h5p-service
# Tests ausführen
docker compose -f docker-compose.content.yml exec h5p-service npm test
```
## Test-Dateien
| Datei | Beschreibung |
|-------|--------------|
| `h5p-service/tests/server.test.js` | Integration Tests für alle Endpoints |
| `h5p-service/tests/setup.js` | Jest Test Setup & Configuration |
| `h5p-service/jest.config.js` | Jest Configuration |
## Coverage Reports
Nach dem Ausführen der Tests:
```bash
# HTML Report öffnen
open h5p-service/coverage/lcov-report/index.html
```
Coverage-Ziel: **>80%**
## Test-Kategorien
### 1. Health & Info Tests
- Service-Verfügbarkeit
- Health Check Endpoint
- Service Info Page
### 2. Editor Selection Tests
- Alle 8 Content-Typen sichtbar
- Korrekte Links zu Editoren
- UI-Elemente vorhanden
### 3. Content Type Tests
Für jeden der 8 Content-Typen:
- Editor lädt korrekt
- Player lädt korrekt
- Erforderliche UI-Elemente vorhanden
**Content-Typen:**
1. Quiz (Question Set)
2. Interactive Video
3. Course Presentation
4. Flashcards
5. Timeline
6. Drag and Drop
7. Fill in the Blanks
8. Memory Game
### 4. Static File Tests
- Core Files erreichbar
- Editor Files erreichbar
- Player Files erreichbar
### 5. Error Handling Tests
- 404 für ungültige Routes
- Fehlerbehandlung für fehlende Editoren/Players
## CI/CD Integration
Die Tests sind in die CI/CD Pipeline integriert:
```yaml
# .github/workflows/tests.yml (Beispiel)
name: H5P Service Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Start H5P Service
run: docker compose -f docker-compose.content.yml up -d h5p-service
- name: Wait for Service
run: sleep 10
- name: Run Tests
run: docker compose -f docker-compose.content.yml exec h5p-service npm run test:ci
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
files: ./h5p-service/coverage/lcov.info
```
## Test-Qualität
### Best Practices
1. **Isolation**: Jeder Test ist unabhängig
2. **Cleanup**: Keine persistenten Änderungen
3. **Assertions**: Klare Expectations
4. **Speed**: Tests laufen schnell (<10s gesamt)
5. **Reliability**: Tests sind deterministisch
### Code Review Checklist
Bei neuen Features:
- [ ] Tests für neue Endpoints hinzugefügt
- [ ] Coverage bleibt >80%
- [ ] Tests sind dokumentiert
- [ ] CI/CD Tests bestehen
## Troubleshooting
### Tests schlagen fehl
**Service nicht erreichbar:**
```bash
# Service Status prüfen
docker compose -f docker-compose.content.yml ps
# Logs ansehen
docker compose -f docker-compose.content.yml logs h5p-service
```
**Port-Konflikte:**
```bash
# Prüfe, ob Port 8003 belegt ist
lsof -i :8003
# Stoppe andere Services
docker compose -f docker-compose.content.yml down
```
**Veraltete Dependencies:**
```bash
cd h5p-service
rm -rf node_modules package-lock.json
npm install
```
## Zukünftige Erweiterungen
- [ ] E2E Tests mit Playwright
- [ ] Content Validation Tests
- [ ] Performance Tests
- [ ] Security Tests (XSS, CSRF)
- [ ] Load Tests
- [ ] Visual Regression Tests
## Verwandte Dokumentation
- [H5P Service README](../../h5p-service/tests/README.md)
- [Content Service Tests](./content-service-tests.md)
- [Integration Testing Guide](./integration-testing.md)