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 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
..

H5P Service Tests

Overview

Dieser Ordner enthält Integration Tests für den BreakPilot H5P Service.

Test-Struktur

tests/
├── README.md           # Diese Datei
├── setup.js            # Jest Test Setup
└── server.test.js      # Integration Tests für Server Endpoints

Test-Coverage

Die Tests decken folgende Bereiche ab:

1. Health & Info Endpoints

  • GET / - Service Info Page
  • GET /health - Health Check

2. Editor Selection Page

  • GET /h5p/editor/new - Hauptseite mit allen 8 Content-Typen

3. Content Type Editors (8 Typen)

  • Quiz Editor
  • Interactive Video Editor
  • Course Presentation Editor
  • Flashcards Editor
  • Timeline Editor
  • Drag and Drop Editor
  • Fill in the Blanks Editor
  • Memory Game Editor

4. Content Type Players (8 Typen)

  • Quiz Player
  • Interactive Video Player
  • Course Presentation Player
  • Flashcards Player (coming soon)
  • Timeline Player
  • Drag and Drop Player
  • Fill in the Blanks Player
  • Memory Game Player

5. Static File Serving

  • /h5p/core/* - H5P Core Files
  • /h5p/editors/* - Editor HTML Files
  • /h5p/players/* - Player HTML Files

6. Error Handling

  • 404 für nicht existierende Routes
  • Invalid Editor/Player Routes

Tests ausführen

Lokale Entwicklung

# Alle Tests ausführen
npm test

# Tests mit Watch-Mode
npm run test:watch

# Tests für CI/CD
npm run test:ci

Docker Container Tests

# Service starten
docker compose -f docker-compose.content.yml up -d h5p-service

# Tests im Container ausführen
docker compose -f docker-compose.content.yml exec h5p-service npm test

Test-Konfiguration

Environment Variables

Variable Default Beschreibung
H5P_TEST_URL http://localhost:8080 Base URL für Tests

Jest Konfiguration

Siehe jest.config.js für Details:

  • Test Timeout: 10000ms
  • Coverage Reports: text, lcov, html
  • Test Match: **/tests/**/*.test.js

Coverage

Coverage Reports werden generiert in:

  • coverage/lcov-report/index.html (HTML Report)
  • coverage/lcov.info (LCOV Format)
  • Terminal Output

Ziel: >80% Coverage

Neue Tests hinzufügen

Test-Template

describe('Feature Name', () => {
  test('should do something', async () => {
    const response = await request(BASE_URL).get('/endpoint');

    expect(response.status).toBe(200);
    expect(response.text).toContain('Expected Content');
  });
});

Troubleshooting

Service nicht erreichbar

# Service Status prüfen
docker compose -f docker-compose.content.yml ps

# Logs ansehen
docker compose -f docker-compose.content.yml logs h5p-service

# Service neu starten
docker compose -f docker-compose.content.yml restart h5p-service

Tests schlagen fehl

  1. Prüfe, ob Service läuft: curl http://localhost:8003/health
  2. Prüfe Logs: docker compose -f docker-compose.content.yml logs h5p-service
  3. Rebuilde Container: docker compose -f docker-compose.content.yml up -d --build h5p-service

Best Practices

  1. Isolierte Tests: Jeder Test sollte unabhängig laufen
  2. Cleanup: Tests sollten keine persistenten Änderungen hinterlassen
  3. Assertions: Klare und aussagekräftige Expectations
  4. Beschreibungen: Aussagekräftige test/describe Namen
  5. Speed: Integration Tests sollten <10s dauern

CI/CD Integration

Die Tests werden automatisch ausgeführt bei:

  • Pull Requests
  • Commits auf main branch
  • Release Builds

GitHub Actions Workflow:

- name: Run H5P Service Tests
  run: |
    docker compose -f docker-compose.content.yml up -d h5p-service
    docker compose -f docker-compose.content.yml exec h5p-service npm run test:ci

Zukünftige Erweiterungen

  • E2E Tests mit Playwright
  • Performance Tests
  • Content Validation Tests
  • Security Tests (XSS, CSRF)
  • Load Tests