Skip to content

Setup REST-assured Test-Infrastruktur mit /status Endpunkt-Test #1276

@coderabbitai

Description

@coderabbitai

User Story

Als Entwickler möchte ich die REST-assured Test-Infrastruktur mit dem ersten automatisierten Test für den /terminvereinbarung/api/2/status/ Endpunkt einrichten, damit die Grundlage für alle weiteren API-Tests geschaffen ist und der wichtigste Status-Endpunkt kontinuierlich überwacht wird.

Als Entwickler: Für Entwickler, die API-Tests schreiben und ausführen müssen.

Damit: Die Test-Infrastruktur ist vollständig konfiguriert und der kritische /status/ Endpunkt wird automatisiert getestet. Dies löst das Problem fehlender API-Test-Automatisierung und schafft die Basis für alle nachfolgenden Endpunkt-Tests.

Quelle: GitHub Issue #1275 - Add Automated Tests for Zmsapi and Zmscitizenapi

Hintergrundinformationen | Informationen für die Umsetzung/Entwicklung

Der /terminvereinbarung/api/2/status/ Endpunkt ist kritisch für die Systemüberwachung und eignet sich ideal als erster automatisierter Test.

Technische Implementierung:

  • Maven-Projekt REST-assured Setup in api-tests/ Verzeichnis
  • REST Assured Dependency (neueste Version)
  • MySQL Testcontainer oder dedizierte Test-DB
  • Migrations: Testdaten basierend auf .resources/zms.sql (keine Kopplung an Unit-Tests) erste migration ist rein leere Kopie von .resources/zms.sql. Zweite migration Daten für den Status Endpunkt befüllen
  • GitHub Actions Integration: Neuer Workflow-Step für API-Tests, MySQL Service Container, Test-Reporting mit Artifacts.
  • Wichtig: Die regulären Migrations müssen vor den Testdaten-Migrations ausgeführt werden - analog zu den Unittests bei zmsapi oder zmsdb.
  • Workflow läuft nur bei erstellung eines Pull Request nach next und nicht bei jeden Push im feature Branch

Projekt-Struktur Details:

eappointment/
├── api-tests/               # Neue Java/REST Assured Tests
│   ├── pom.xml              # Maven Konfiguration
│   ├── src/test/java/       # Test-Implementierungen
│   │ ├── zmsapi/StatusEndpointTest.java # Erster Test 
│   │ │ └── helpers/TestDataBuilder.java # Test-Daten Helper
│   ├─┤── src/test/resources/  # Schema und Testdaten
│   │ ├── db/01-base-schema.sql # Kopie von zms.sql 
│   │ │ └── db/02-status-test-data.sql # Minimale Testdaten  
│   └── README.md # Dokumentation

Diese User Story schafft die technische Grundlage für alle 326 weiteren Endpunkt-Tests und etabliert bewährte Praktiken für die API-Testautomatisierung.

Akzeptanzkriterien

  • api-tests/ Maven-Projekt ist erstellt und konfiguriert
  • REST Assured Dependency ist eingebunden (aktuellste Version)
  • MariaDB Testdatenbank läuft in den Github Actions mit .resources/zms.sql als Basisschema
  • Minimale Testdaten für /status/ Endpunkt sind in einer Test-Migration erstellt
  • StatusEndpointTest.java ist implementiert und testet erfolgreich
  • GitHub Actions Workflow ist erweitert und startet die API-Tests nur bei Pull-Request nach next
  • Test Reports sind in den Github Actions als Artefakt herunterladbar
  • /status/ Tests laufen erfolgreich in der CI Pipeline
  • TestDataBuilder Pattern ist implementiert für zukünftige Tests
  • Dokumentation README.md für weitere API-Test-Entwicklung ist erstellt

Metadata

Metadata

Assignees

No one assigned

    Labels

    actionsEverything Github Actionsunit testsEverything with php and typescript unit tests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions