// 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(); }); });