diff --git a/__mocks__/maplibre-gl.js b/__mocks__/maplibre-gl.js new file mode 100644 index 0000000000..c410e4f24c --- /dev/null +++ b/__mocks__/maplibre-gl.js @@ -0,0 +1,40 @@ +/* +Copyright 2024 New Vector Ltd. +Copyright 2022 The Matrix.org Foundation C.I.C. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only +Please see LICENSE files in the repository root for full details. +*/ + +const EventEmitter = require("events"); +const { LngLat, NavigationControl, LngLatBounds } = require("maplibre-gl"); + +class MockMap extends EventEmitter { + addControl = jest.fn(); + removeControl = jest.fn(); + zoomIn = jest.fn(); + zoomOut = jest.fn(); + setCenter = jest.fn(); + setStyle = jest.fn(); + fitBounds = jest.fn(); +} +const MockMapInstance = new MockMap(); + +class MockAttributionControl {} +class MockGeolocateControl extends EventEmitter { + trigger = jest.fn(); +} +const MockGeolocateInstance = new MockGeolocateControl(); +const MockMarker = {}; +MockMarker.setLngLat = jest.fn().mockReturnValue(MockMarker); +MockMarker.addTo = jest.fn().mockReturnValue(MockMarker); +MockMarker.remove = jest.fn().mockReturnValue(MockMarker); +module.exports = { + Map: jest.fn().mockReturnValue(MockMapInstance), + GeolocateControl: jest.fn().mockReturnValue(MockGeolocateInstance), + Marker: jest.fn().mockReturnValue(MockMarker), + LngLat, + LngLatBounds, + NavigationControl, + AttributionControl: MockAttributionControl, +}; diff --git a/knip.ts b/knip.ts index e71f71d0fb..247f9d9789 100644 --- a/knip.ts +++ b/knip.ts @@ -15,6 +15,8 @@ export default { ignore: [ "docs/**", "res/jitsi_external_api.min.js", + // Used by jest + "__mocks__/maplibre-gl.js", // Keep for now "src/hooks/useLocalStorageState.ts", "src/components/views/elements/InfoTooltip.tsx",