76 lines
2.4 KiB
JavaScript
76 lines
2.4 KiB
JavaScript
import axios from "axios";
|
|
import os from "os"; // Modul zum Ermitteln der IP-Adresse
|
|
|
|
// Dynamische Ermittlung der IP-Adresse des Rechners
|
|
function getLocalIPAddress() {
|
|
const interfaces = os.networkInterfaces();
|
|
for (const name of Object.keys(interfaces)) {
|
|
for (const iface of interfaces[name]) {
|
|
if (iface.family === "IPv4" && !iface.internal) {
|
|
return iface.address; // Rückgabe der IPv4-Adresse
|
|
}
|
|
}
|
|
}
|
|
return "localhost"; // Fallback zu localhost
|
|
}
|
|
|
|
// Basis-URL dynamisch erstellen
|
|
const BASE_URL = `http://${getLocalIPAddress()}:3000/api/gisStationsStatusDistrict`;
|
|
|
|
describe("Echte API-Integrationstests für gisStationsStatusDistrict", () => {
|
|
// Test 1: Erfolgreiche Anfrage mit gültigen Parametern
|
|
it("gibt JSON-Daten zurück, wenn gültige Parameter übergeben werden", async () => {
|
|
const params = {
|
|
m: "12", // Beispiel für idMap
|
|
u: "484", // Beispiel für idUser
|
|
};
|
|
|
|
// Echte Anfrage an den Server senden
|
|
const response = await axios.get(BASE_URL, { params });
|
|
|
|
// Statuscode prüfen
|
|
expect(response.status).toBe(200);
|
|
|
|
// Antwortdaten prüfen
|
|
expect(response.data).toHaveProperty("Name");
|
|
expect(response.data).toHaveProperty("Statis");
|
|
expect(response.data.Statis).toBeInstanceOf(Array);
|
|
|
|
const item = response.data.Statis[0];
|
|
expect(item).toHaveProperty("IdLD");
|
|
expect(item).toHaveProperty("Na");
|
|
expect(item).toHaveProperty("Le");
|
|
expect(item).toHaveProperty("Co");
|
|
expect(item).toHaveProperty("Me");
|
|
expect(item).toHaveProperty("Feld");
|
|
expect(item).toHaveProperty("Icon");
|
|
});
|
|
|
|
// Test 2: Fehler bei fehlenden Parametern
|
|
it("gibt einen Fehler zurück, wenn Parameter fehlen", async () => {
|
|
try {
|
|
// Anfrage ohne Parameter
|
|
await axios.get(BASE_URL);
|
|
} catch (error) {
|
|
expect(error.response.status).toBe(400);
|
|
expect(error.response.data).toHaveProperty("error");
|
|
expect(error.response.data).toHaveProperty("message");
|
|
}
|
|
});
|
|
|
|
// Test 3: Fehler bei ungültigen Parametern
|
|
it("gibt einen Serverfehler zurück, wenn ungültige Parameter verwendet werden", async () => {
|
|
try {
|
|
const params = {
|
|
m: "invalid", // Ungültige idMap
|
|
u: "invalid", // Ungültige idUser
|
|
};
|
|
|
|
await axios.get(BASE_URL, { params });
|
|
} catch (error) {
|
|
expect(error.response.status).toBe(500);
|
|
expect(error.response.data).toHaveProperty("error");
|
|
}
|
|
});
|
|
});
|