From 198f93fe4a62c0339961726f621b718d9553ace3 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 15 Jun 2023 22:33:43 -0700 Subject: [PATCH] Test ControlPointsLayer. --- .../ControlPointsLayer.test.tsx | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 client/src/components/controlpointslayer/ControlPointsLayer.test.tsx diff --git a/client/src/components/controlpointslayer/ControlPointsLayer.test.tsx b/client/src/components/controlpointslayer/ControlPointsLayer.test.tsx new file mode 100644 index 00000000..61cbe92b --- /dev/null +++ b/client/src/components/controlpointslayer/ControlPointsLayer.test.tsx @@ -0,0 +1,52 @@ +import { renderWithProviders } from "../../testutils"; +import ControlPointsLayer from "./ControlPointsLayer"; +import { LatLng } from "leaflet"; +import { PropsWithChildren } from "react"; + +const mockMarker = jest.fn(); +const mockLayerGroup = jest.fn(); +jest.mock("react-leaflet", () => ({ + LayerGroup: (props: PropsWithChildren) => { + mockLayerGroup(props); + return <>{props.children}; + }, + Marker: (props: any) => { + mockMarker(props); + }, +})); + +describe("ControlPointsLayer", () => { + it("renders each control point", () => { + renderWithProviders(, { + preloadedState: { + controlPoints: { + controlPoints: { + foo: { + id: "foo", + name: "Foo", + blue: true, + position: new LatLng(0, 0), + mobile: false, + sidc: "", + }, + bar: { + id: "bar", + name: "Bar", + blue: false, + position: new LatLng(1, 0), + mobile: false, + sidc: "", + }, + }, + }, + }, + }); + expect(mockMarker).toBeCalledTimes(2); + }); + + it("renders LayerGroup but no contents if no combat", () => { + renderWithProviders(); + expect(mockLayerGroup).toBeCalledTimes(1); + expect(mockMarker).not.toHaveBeenCalled(); + }); +});