54 lines · 1.7 KB · TypeScript
RawDownload
import { EnvironmentId } from "@t3tools/contracts";import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { reactHookHarness as hooks } from "../../test/reactHookHarness"; const settingsHooks = vi.hoisted(() => ({  read: vi.fn(() => ({ providerInstances: {} })),  update: vi.fn(() => vi.fn()),})); vi.mock("react", async (importOriginal) => {  const actual = await importOriginal<typeof import("react")>();  const { reactHookHarness } = await import("../../test/reactHookHarness");  return {    ...actual,    useMemo: reactHookHarness.useMemo,    useState: reactHookHarness.useState,  };}); vi.mock("react/compiler-runtime", async () => {  const { reactHookHarness } = await import("../../test/reactHookHarness");  return { c: reactHookHarness.useMemoCache };}); vi.mock("../../hooks/useSettings", () => ({  useEnvironmentSettings: settingsHooks.read,  useUpdateEnvironmentSettings: settingsHooks.update,})); import { AddProviderInstanceDialog } from "./AddProviderInstanceDialog"; const remoteEnvironmentId = EnvironmentId.make("remote-device"); describe("AddProviderInstanceDialog environment routing", () => {  beforeEach(() => {    hooks.reset();    settingsHooks.read.mockClear();    settingsHooks.update.mockClear();  });   it("reads and writes settings through the supplied environment", () => {    hooks.beginRender();    AddProviderInstanceDialog({      open: true,      environmentId: remoteEnvironmentId,      environmentLabel: "Remote device",      onOpenChange: vi.fn(),    });     expect(settingsHooks.read).toHaveBeenCalledWith(remoteEnvironmentId);    expect(settingsHooks.update).toHaveBeenCalledWith(remoteEnvironmentId);  });});