import GeoJsonCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/GeoJsonCatalogItem";
import Terria from "../../../../lib/Models/Terria";
import ViewState from "../../../../lib/ReactViewModels/ViewState";
import PointOnMap from "../../../../lib/ReactViews/Custom/Chart/PointOnMap";
import { renderWithContexts } from "../../withContext";
describe("PointOnMap", function () {
let terria: Terria;
let viewState: ViewState;
beforeEach(function () {
terria = new Terria({
baseUrl: "./"
});
viewState = new ViewState({
terria,
catalogSearchProvider: undefined
});
});
it("adds the point as an overlay on mount", async function () {
renderWithContexts(
,
viewState
);
const pointItem: GeoJsonCatalogItem = terria.overlays
.items[0] as GeoJsonCatalogItem;
expect(pointItem).toBeDefined();
expect(pointItem instanceof GeoJsonCatalogItem).toBe(true);
await pointItem.loadMapItems();
expect(pointItem.style["marker-color"]).toBe("red");
const geometry: any = pointItem.geoJsonData?.geometry;
expect(geometry.type).toBe("Point");
expect(geometry.coordinates).toEqual([144.96332, -37.814]);
});
it("it removes the point from overlay on umount", async function () {
const { unmount } = renderWithContexts(
,
viewState
);
expect(terria.overlays.items.length).toBe(1);
unmount();
expect(terria.overlays.items.length).toBe(0);
});
});