feat: Proxy-APIs und Integrationstests für WebServices hinzugefügt

- Vier Proxy-Endpunkte implementiert:
  1. gisStationsStatusDistrict
  2. gisStationsStaticDistrict
  3. gisStationsMeasurements
  4. gisSystemStatic

- API-Integrationstests mit Jest für alle Endpunkte erstellt:
  - Tests verwenden echte API-Responses statt Mock-Daten.
  - Erfolgreiche Anfragen mit gültigen Parametern getestet.
  - Fehlende Parameter und ungültige Parameter getestet.

- Code enthält:
  - Dynamische URL-Generierung für Proxy-Weiterleitungen.
  - Prüfung von Headern, Statuscodes und JSON-Strukturen.
  - Unterstützung für CORS und OPTIONS-Anfragen.

- Ergebnis:
  - Alle Tests erfolgreich bestanden.
  - APIs bereit für produktive Nutzung und Erweiterungen.
This commit is contained in:
ISA
2025-01-03 14:02:29 +01:00
parent 2a1f885190
commit d7978790e1
13 changed files with 600 additions and 171 deletions

View File

@@ -1,45 +0,0 @@
import React from "react";
import { render, screen, fireEvent } from "@testing-library/react";
import { RecoilRoot } from "recoil";
import MapComponent from "./MapComponent";
import { mapLayersState } from "../store/atoms/mapLayersSlice";
import { poiLayerVisibleState } from "../store/atoms/poiLayerVisibleSlice";
import "@testing-library/jest-dom";
describe("MapComponent - TK-Komponenten Tests", () => {
test("TK-Komponenten sind sichtbar, wenn Checkbox aktiviert ist", () => {
// Initialisiere die Recoil-Atoms
const mockState = {
TKKomponenten: true, // TK-Komponenten sichtbar
};
render(
<RecoilRoot initializeState={({ set }) => set(mapLayersState, mockState)}>
<MapComponent />
</RecoilRoot>
);
// Stelle sicher, dass die TK-Komponenten sichtbar sind
const tkLayer = screen.getByText(/TK-Komponenten/i);
expect(tkLayer).toBeInTheDocument();
});
test("TK-Komponenten werden ausgeblendet, wenn Checkbox deaktiviert wird", () => {
const mockState = {
TKKomponenten: true, // Initial sichtbar
};
render(
<RecoilRoot initializeState={({ set }) => set(mapLayersState, mockState)}>
<MapComponent />
</RecoilRoot>
);
// Simuliere die Checkbox-Interaktion
const checkbox = screen.getByRole("checkbox", { name: /TK-Komponenten/i });
fireEvent.click(checkbox); // Deaktiviert die Sichtbarkeit
// Erwartung: TK-Komponenten sind nicht sichtbar
expect(checkbox.checked).toBe(false);
});
});