Files
nodeMap/utils/openInNewTab.test.js
ISA df5289cc38 MAP_VERSION = "1.0.12"
feat: Integrationstest für openInNewTab erfolgreich implementiert

- Mocking für Leaflet-Objekte (Marker, Polyline) erstellt.
- Tests hinzugefügt, die sicherstellen:
  - Marker-Links werden korrekt generiert und geöffnet.
  - Polyline-Links werden korrekt generiert und geöffnet.
  - Fehler ausgegeben werden, wenn kein gültiger Link gefunden wird.
- Jest-Konfiguration angepasst, um globale Objekte wie window zu mocken.
- Funktionalität und Tests erfolgreich überprüft.
2024-12-06 14:18:05 +01:00

55 lines
1.5 KiB
JavaScript

// utils/openInNewTab.test.js
import { openInNewTab } from "./openInNewTab";
// Leaflet manuell mocken
global.L = {
Marker: class {
constructor(options) {
this.options = options || {};
}
},
Polyline: class {
constructor(options) {
this.options = options || {};
}
},
};
describe("Integrationstest für openInNewTab", () => {
const mockWindowOpen = jest.fn();
beforeAll(() => {
global.window = Object.create(window);
window.open = mockWindowOpen;
delete window.location;
window.location = new URL("http://10.10.0.13");
});
afterEach(() => {
mockWindowOpen.mockClear();
});
it("soll den Link korrekt für einen Marker öffnen", () => {
const marker = new L.Marker({ link: "cpl.aspx?ver=35&kue=24&id=50922" });
openInNewTab(null, marker);
expect(mockWindowOpen).toHaveBeenCalledWith("http://10.10.0.13/talas5/devices/cpl.aspx?ver=35&kue=24&id=50922", "_blank");
});
it("soll den Link korrekt für eine Polyline öffnen", () => {
const polyline = new L.Polyline({ idLD: 50922 });
openInNewTab(null, polyline);
expect(mockWindowOpen).toHaveBeenCalledWith("http://10.10.0.13/talas5/devices/cpl.aspx?id=50922", "_blank");
});
it("soll einen Fehler ausgeben, wenn kein Link gefunden wird", () => {
console.error = jest.fn();
openInNewTab();
expect(console.error).toHaveBeenCalledWith("Fehler: Es wurde kein gültiger Link gefunden.");
expect(mockWindowOpen).not.toHaveBeenCalled();
});
});