diff --git a/ui/src/components/CommandPalette.test.tsx b/ui/src/components/CommandPalette.test.tsx index 37c50dd6064..617aad06ea0 100644 --- a/ui/src/components/CommandPalette.test.tsx +++ b/ui/src/components/CommandPalette.test.tsx @@ -1,12 +1,20 @@ // @vitest-environment jsdom -import { act } from "react"; import type { KeyboardEventHandler, ReactNode } from "react"; +import { flushSync } from "react-dom"; import { createRoot } from "react-dom/client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { CommandPalette } from "./CommandPalette"; +function act(callback: () => void | Promise) { + let result: void | Promise; + flushSync(() => { + result = callback(); + }); + return result; +} + const companyState = vi.hoisted(() => ({ selectedCompanyId: "company-1", })); diff --git a/ui/src/components/IssueWorkspaceCard.test.tsx b/ui/src/components/IssueWorkspaceCard.test.tsx index 148362e8b9e..3d193ecb557 100644 --- a/ui/src/components/IssueWorkspaceCard.test.tsx +++ b/ui/src/components/IssueWorkspaceCard.test.tsx @@ -1,12 +1,20 @@ // @vitest-environment jsdom -import { act } from "react"; import type { ComponentProps } from "react"; +import { flushSync } from "react-dom"; import { createRoot } from "react-dom/client"; import type { ExecutionWorkspace, Issue } from "@paperclipai/shared"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { IssueWorkspaceCard } from "./IssueWorkspaceCard"; +function act(callback: () => void | Promise) { + let result: void | Promise; + flushSync(() => { + result = callback(); + }); + return result; +} + const useQueryMock = vi.fn(); vi.mock("@tanstack/react-query", async () => { diff --git a/ui/src/components/WorkspaceFileBrowser.test.tsx b/ui/src/components/WorkspaceFileBrowser.test.tsx index f65645704ba..7ffccd360d1 100644 --- a/ui/src/components/WorkspaceFileBrowser.test.tsx +++ b/ui/src/components/WorkspaceFileBrowser.test.tsx @@ -1,11 +1,19 @@ // @vitest-environment jsdom -import { act } from "react"; +import { flushSync } from "react-dom"; import { createRoot } from "react-dom/client"; import type { WorkspaceFileListItem, WorkspaceFileListResponse } from "@paperclipai/shared"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { WorkspaceFileBrowser, describeUnavailable } from "./WorkspaceFileBrowser"; +function act(callback: () => void | Promise) { + let result: void | Promise; + flushSync(() => { + result = callback(); + }); + return result; +} + const useQueryMock = vi.fn(); vi.mock("@tanstack/react-query", async () => { @@ -132,6 +140,9 @@ describe("WorkspaceFileBrowser", () => { useQueryMock.mockReturnValue(ok(availableResponse([createItem()]))); const { onOpen } = renderBrowser(); const input = container.querySelector("input")!; + act(() => { + input.dispatchEvent(new KeyboardEvent("keydown", { key: "ArrowDown", bubbles: true, cancelable: true })); + }); act(() => { input.dispatchEvent(new KeyboardEvent("keydown", { key: "Enter", bubbles: true, cancelable: true })); });