From a7d2eca209bd9f34f28249e5542887b0b9aa3cf9 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 4 May 2023 01:07:36 -0700 Subject: [PATCH] Add a test for the Aircraft component. Leaflet (or maybe react-leaflet?) isn't very testable, so we can really only test that mocks were called with the right props for the leaflet components we expect, but that's still better than nothing. --- .../src/components/aircraft/Aircraft.test.tsx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 client/src/components/aircraft/Aircraft.test.tsx diff --git a/client/src/components/aircraft/Aircraft.test.tsx b/client/src/components/aircraft/Aircraft.test.tsx new file mode 100644 index 00000000..959efb1f --- /dev/null +++ b/client/src/components/aircraft/Aircraft.test.tsx @@ -0,0 +1,53 @@ +import Aircraft from "./Aircraft"; +import { render } from "@testing-library/react"; +import { Icon } from "leaflet"; + +const mockMarker = jest.fn(); +jest.mock("react-leaflet", () => ({ + Marker: (props: any) => { + mockMarker(props); + }, +})); + +test("grounded aircraft do not render", async () => { + const { container } = render( + + ); + + expect(container).toBeEmptyDOMElement(); +}); + +test("in-flight aircraft render", async () => { + render( + + ); + + expect(mockMarker).toHaveBeenCalledWith( + expect.objectContaining({ + position: { + lat: 10, + lng: 20, + }, + icon: expect.any(Icon), + }) + ); +});