51 lines · 1.5 KB · TypeScript
RawDownload
import { scopeThreadRef } from "@t3tools/client-runtime/environment";import { EnvironmentId, ThreadId } from "@t3tools/contracts";import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { openDiffFilePrimaryAction } from "./diffFileActions";import { selectThreadRightPanelState, useRightPanelStore } from "./rightPanelStore"; const THREAD_REF = scopeThreadRef(  EnvironmentId.make("environment-local"),  ThreadId.make("thread-1"),); describe("openDiffFilePrimaryAction", () => {  beforeEach(() => {    useRightPanelStore.setState({ byThreadKey: {} });  });   it("opens diff files in the thread file viewer", () => {    const openInEditor = vi.fn();     openDiffFilePrimaryAction({      threadRef: THREAD_REF,      filePath: "apps/web/src/components/DiffPanel.tsx",      activeCwd: "/repo/project",      openInEditor,    });     expect(      selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, THREAD_REF),    ).toMatchObject({      isOpen: true,      activeSurfaceId: "file:apps/web/src/components/DiffPanel.tsx",    });    expect(openInEditor).not.toHaveBeenCalled();  });   it("falls back to the editor without thread context", () => {    const openInEditor = vi.fn();     openDiffFilePrimaryAction({      threadRef: null,      filePath: "apps/web/src/components/DiffPanel.tsx",      activeCwd: "/repo/project",      openInEditor,    });     expect(openInEditor).toHaveBeenCalledWith(      "/repo/project/apps/web/src/components/DiffPanel.tsx",    );  });});