diff --git a/jest-setup.ts b/jest-setup.ts index 5166197b..d0de870d 100644 --- a/jest-setup.ts +++ b/jest-setup.ts @@ -1,3 +1 @@ import "@testing-library/jest-dom"; -import { TextEncoder, TextDecoder } from "util"; -Object.assign(global, { TextDecoder, TextEncoder }); diff --git a/src/components/comparison/comparison-side/comparison-side.spec.tsx b/src/components/comparison/comparison-side/comparison-side.spec.tsx index 6a23f8b6..c2405fb3 100644 --- a/src/components/comparison/comparison-side/comparison-side.spec.tsx +++ b/src/components/comparison/comparison-side/comparison-side.spec.tsx @@ -18,6 +18,21 @@ import { MemoryUsagePanel } from "../../memory-usage-panel/memory-usage-panel"; import { setupStore } from "../../../redux/store"; import { setDragMode } from "../../../redux/slices/drag-mode-slice"; +jest.mock("@deck.gl/geo-layers", () => ({ + load: jest.fn(), +})); +jest.mock("@deck.gl/layers", () => ({ + load: jest.fn(), +})); +jest.mock("maplibre-gl", () => ({ + load: jest.fn(), +})); +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); +jest.mock("@loaders.gl/3d-tiles", () => ({ + load: jest.fn(), +})); jest.mock("@loaders.gl/core"); jest.mock("../../deck-gl-wrapper/deck-gl-wrapper"); jest.mock("../../main-tools-panel/main-tools-panel"); diff --git a/src/components/deck-gl-wrapper/deck-gl-wrapper.spec.tsx b/src/components/deck-gl-wrapper/deck-gl-wrapper.spec.tsx index c7fbf164..5bed7024 100644 --- a/src/components/deck-gl-wrapper/deck-gl-wrapper.spec.tsx +++ b/src/components/deck-gl-wrapper/deck-gl-wrapper.spec.tsx @@ -18,10 +18,22 @@ jest.mock("@deck.gl/react", () => { return null; }); }); +jest.mock("@deck.gl/geo-layers", () => ({ + load: jest.fn(), +})); +jest.mock("@deck.gl/layers", () => ({ + load: jest.fn(), +})); +jest.mock("maplibre-gl", () => ({ + load: jest.fn(), +})); +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); +jest.mock("@loaders.gl/3d-tiles", () => ({ + load: jest.fn(), +})); jest.mock("@deck.gl/core"); -jest.mock("@deck.gl/layers"); -jest.mock("@deck.gl/geo-layers"); -jest.mock("react-map-gl"); jest.mock("../../utils/debug/build-minimap-data"); jest.mock("../../utils/debug/texture-selector-utils"); jest.mock("../../utils/debug/frustum-utils"); @@ -61,7 +73,7 @@ import { setupStore } from "../../redux/store"; import { setColorsByAttrubute } from "../../redux/slices/colors-by-attribute-slice"; import { setDragMode } from "../../redux/slices/drag-mode-slice"; import { setDebugOptions } from "../../redux/slices/debug-options-slice"; -import { addBaseMap } from "../../redux/slices/base-maps-slice" +import { addBaseMap } from "../../redux/slices/base-maps-slice"; const simpleCallbackMock = jest.fn().mockImplementation(() => { /* Do Nothing */ @@ -336,7 +348,11 @@ describe("Deck.gl I3S map component", () => { it("Should render pickable with auto highlighting", () => { const store = setupStore(); - callRender(renderWithProvider, { pickable: true, autoHighlight: true }, store); + callRender( + renderWithProvider, + { pickable: true, autoHighlight: true }, + store + ); const { pickable, autoHighlight } = Tile3DLayer.mock.lastCall[0]; expect(pickable).toBe(true); expect(autoHighlight).toBe(true); @@ -509,8 +525,7 @@ describe("Deck.gl I3S map component", () => { describe("Render TerrainLayer", () => { const store = setupStore(); - store.dispatch( - addBaseMap({ id: "Terrain", mapUrl: "", name: "Terrain" })); + store.dispatch(addBaseMap({ id: "Terrain", mapUrl: "", name: "Terrain" })); it("Should render terrain", () => { callRender(renderWithProvider, undefined, store); expect(TerrainLayer).toHaveBeenCalled(); @@ -519,7 +534,8 @@ describe("Deck.gl I3S map component", () => { it("Should call onTerrainTileLoad", () => { const store = setupStore(); store.dispatch( - addBaseMap({ id: "Terrain", mapUrl: "", name: "Terrain" })); + addBaseMap({ id: "Terrain", mapUrl: "", name: "Terrain" }) + ); const { rerender } = callRender(renderWithProvider, undefined, store); const { onTileLoad } = TerrainLayer.mock.lastCall[0]; const terrainTile = { diff --git a/src/components/layers-panel/layers-panel.spec.tsx b/src/components/layers-panel/layers-panel.spec.tsx index 67d496ce..7d25e52a 100644 --- a/src/components/layers-panel/layers-panel.spec.tsx +++ b/src/components/layers-panel/layers-panel.spec.tsx @@ -12,14 +12,11 @@ import { LayerSettingsPanel } from "./layer-settings-panel"; import { load } from "@loaders.gl/core"; import { PageId } from "../../types"; import { setupStore } from "../../redux/store"; -import { - selectSelectedBaseMapId, -} from "../../redux/slices/base-maps-slice"; +import { selectSelectedBaseMapId } from "../../redux/slices/base-maps-slice"; jest.mock("@loaders.gl/core", () => ({ load: jest.fn(), })); - jest.mock("@loaders.gl/i3s", () => ({ ArcGisWebSceneLoader: jest.fn(), })); @@ -277,7 +274,7 @@ describe("Layers Panel", () => { }); const state = store.getState(); - const baseMapId = selectSelectedBaseMapId(state); + const baseMapId = selectSelectedBaseMapId(state); expect(baseMapId).toEqual("https://test-base-map.url"); }); diff --git a/src/redux/slices/attribute-stats-map-slice.spec.ts b/src/redux/slices/attribute-stats-map-slice.spec.ts index f2f83d02..124a921f 100644 --- a/src/redux/slices/attribute-stats-map-slice.spec.ts +++ b/src/redux/slices/attribute-stats-map-slice.spec.ts @@ -7,6 +7,9 @@ import { import { StatsInfo } from "@loaders.gl/i3s"; jest.mock("@loaders.gl/core"); +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); describe("slice: attribute-stats-map", () => { it("Selector should return the initial state", () => { diff --git a/src/redux/slices/base-maps-slice.spec.ts b/src/redux/slices/base-maps-slice.spec.ts index 9d622eb2..ed7952ea 100644 --- a/src/redux/slices/base-maps-slice.spec.ts +++ b/src/redux/slices/base-maps-slice.spec.ts @@ -9,6 +9,10 @@ import reducer, { deleteBaseMaps, } from "./base-maps-slice"; +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); + describe("slice: base-maps", () => { it("Reducer should return the initial state", () => { expect(reducer(undefined, { type: undefined })).toEqual({ diff --git a/src/redux/slices/colors-by-attribute-slice.ts b/src/redux/slices/colors-by-attribute-slice.ts index 8483b5e0..613aaff7 100644 --- a/src/redux/slices/colors-by-attribute-slice.ts +++ b/src/redux/slices/colors-by-attribute-slice.ts @@ -2,6 +2,10 @@ import { PayloadAction, createSlice } from "@reduxjs/toolkit"; import { ColorsByAttribute } from "../../types"; import { RootState } from "../store"; +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); + // Define a type for the slice state export interface ColorsByAttributeState { /** Values of color properties responsible for colorizig by attributes */ diff --git a/src/redux/slices/drag-mode-slice.spec.ts b/src/redux/slices/drag-mode-slice.spec.ts index d6b1c67e..013594ed 100644 --- a/src/redux/slices/drag-mode-slice.spec.ts +++ b/src/redux/slices/drag-mode-slice.spec.ts @@ -5,7 +5,9 @@ import reducer, { selectDragMode, setDragMode, } from "./drag-mode-slice"; - +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); describe("slice: drag-mode", () => { it("Reducer should return the initial state", () => { expect(reducer(undefined, { type: undefined })).toEqual({ diff --git a/src/redux/slices/flattened-sublayers-slice.spec.ts b/src/redux/slices/flattened-sublayers-slice.spec.ts index ba9b89fc..71784d45 100644 --- a/src/redux/slices/flattened-sublayers-slice.spec.ts +++ b/src/redux/slices/flattened-sublayers-slice.spec.ts @@ -25,6 +25,9 @@ import { } from "./test-data/fluttened-sublayers-slice-test-data"; jest.mock("@loaders.gl/core"); +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); const previousState: flattenedSublayersState = { single: { diff --git a/src/redux/slices/uv-debug-texture-slice.spec.ts b/src/redux/slices/uv-debug-texture-slice.spec.ts index c9684700..01f6ccc6 100644 --- a/src/redux/slices/uv-debug-texture-slice.spec.ts +++ b/src/redux/slices/uv-debug-texture-slice.spec.ts @@ -7,6 +7,9 @@ import { import { ImageLoader } from "@loaders.gl/images"; jest.mock("@loaders.gl/core"); +jest.mock("@loaders.gl/i3s", () => ({ + load: jest.fn(), +})); const imageStubObject = { width: 1024, height: 1024, data: new ArrayBuffer(0) };