From 3cc16de0d27700bebafbd63945453b236e202e99 Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Mon, 17 Aug 2026 15:41:31 -0700 Subject: [PATCH] test(ui): settle the in-flight search before the loading tests end Both loading tests mock searchToolQueryCall as a promise that resolves on a timer, assert the loading affordance, then return with that promise still in flight. When the worker outlives the file's jsdom environment, the component's setIsLoading(false) runs against a torn-down window, and React reports "ReferenceError: window is not defined" as an unhandled rejection. Vitest counts that as an error, so ui-unit-tests fails the job while reporting every one of its 7351 tests as passed. Awaiting the settled state keeps both assertions and leaves nothing pending at teardown. --- .../search-tools/_components/SearchToolTester.test.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx index 3d4144a74e6..196eb6c88b0 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/search-tools/_components/SearchToolTester.test.tsx @@ -123,6 +123,8 @@ describe("SearchToolTester", () => { const searchButton = screen.getByRole("button", { name: /search/i }); await user.click(searchButton); expect(screen.getByText("Searching...")).toBeInTheDocument(); + + expect(await screen.findByText("Test Result 1")).toBeInTheDocument(); }); it("should display search results after successful search", async () => { @@ -407,6 +409,8 @@ describe("SearchToolTester", () => { await user.click(searchButton); expect(input).toBeDisabled(); expect(searchButton).toBeDisabled(); + + await waitFor(() => expect(searchButton).toBeEnabled()); }); it("should display result links that open in new tab", async () => {