Skip to content

Commit

Permalink
#119 test: Add test for useGetFloorplan
Browse files Browse the repository at this point in the history
  • Loading branch information
TWilkin committed Jun 13, 2024
1 parent 8cf13d8 commit 8ae79bf
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions services/ui/src/hooks/useGetFloorplan.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { PowerPiApi } from "@powerpi/common-api";
import { ConfigFileType } from "@powerpi/common-api/dist/src/ConfigStatus";
import { QueryClient } from "react-query";
import { capture, instance, mock, resetCalls, when } from "ts-mockito";
import { renderHook, waitFor } from "../test-setup";
import { useGetFloorplan } from "./floorplan";

describe("useGetFloorplan", () => {
const api = mock<PowerPiApi>();

beforeEach(() => resetCalls(api));

test("gets data", async () => {
when(api.getFloorplan()).thenResolve({ floors: [] });

const { result } = renderHook(useGetFloorplan, {
api: instance(api),
});

await waitFor(() => expect(result.current.floorplan).toStrictEqual({ floors: [] }));
});

describe("onConfigChange", () => {
const queryClient = new QueryClient();
queryClient.invalidateQueries = jest.fn();

beforeEach(() => jest.resetAllMocks());

test("expected config type", () => {
renderHook(useGetFloorplan, {
api: instance(api),
queryClient: queryClient,
});

const listener = capture(api.addConfigChangeListener).first()[0];

listener({ type: ConfigFileType.Floorplan });

expect(queryClient.invalidateQueries).toHaveBeenCalledWith(["powerpi", "floorplan"]);
});

test("wrong config type", () => {
renderHook(useGetFloorplan, {
api: instance(api),
queryClient: queryClient,
});

const listener = capture(api.addConfigChangeListener).first()[0];

listener({ type: ConfigFileType.Devices });

expect(queryClient.invalidateQueries).not.toHaveBeenCalled();
});
});
});

0 comments on commit 8ae79bf

Please sign in to comment.