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.
55 lines
1.5 KiB
JavaScript
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();
|
|
});
|
|
});
|