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(); 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); }); });