mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-09 03:18:44 +00:00
test(ui): inject the auto-router availability debounce so saves settle deterministically
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
04f3ade124
commit
c2dfcca328
3 changed files with 11 additions and 3 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import { createContext, useContext, useEffect, useState } from "react";
|
||||
import { useQuery, type UseQueryOptions } from "@tanstack/react-query";
|
||||
import { apiClient } from "@/components/networking";
|
||||
import { AutoRouterAvailabilityDebounceContext } from "@/components/add_model/autoRouterAvailabilityDebounce";
|
||||
import { Popover, PopoverContent, PopoverTitle, PopoverTrigger } from "@/components/ui/popover";
|
||||
import type { components } from "@/lib/http/schema";
|
||||
|
||||
|
|
@ -21,10 +22,11 @@ export const AutoRouterAvailabilityContext = createContext<AvailabilityState>({
|
|||
export const useAutoRouterAvailability = (accessToken: string, body: Request, enabled = true) => {
|
||||
const serialized = JSON.stringify(body.complexity_router_config ?? null);
|
||||
const [debounced, setDebounced] = useState(serialized);
|
||||
const debounceMs = useContext(AutoRouterAvailabilityDebounceContext);
|
||||
useEffect(() => {
|
||||
const timeout = setTimeout(() => setDebounced(serialized), 300);
|
||||
const timeout = setTimeout(() => setDebounced(serialized), debounceMs);
|
||||
return () => clearTimeout(timeout);
|
||||
}, [serialized]);
|
||||
}, [serialized, debounceMs]);
|
||||
const options: UseQueryOptions<Availability> = {
|
||||
queryKey: ["autoRouterAvailability", accessToken, body.team_id, body.saved_model_id, debounced],
|
||||
queryFn: ({ signal }) =>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
import { createContext } from "react";
|
||||
|
||||
export const AutoRouterAvailabilityDebounceContext = createContext(300);
|
||||
|
|
@ -4,6 +4,7 @@ import type userEvent from "@testing-library/user-event";
|
|||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { NuqsTestingAdapter, OnUrlUpdateFunction } from "nuqs/adapters/testing";
|
||||
import { expect } from "vitest";
|
||||
import { AutoRouterAvailabilityDebounceContext } from "@/components/add_model/autoRouterAvailabilityDebounce";
|
||||
|
||||
// Create a client for testing
|
||||
export const testQueryClient = new QueryClient({
|
||||
|
|
@ -31,7 +32,9 @@ export const renderWithProviders = (ui: React.ReactElement, options?: RenderOpti
|
|||
const { searchParams, onUrlUpdate, ...renderOptions } = options ?? {};
|
||||
const Providers: React.FC<PropsWithChildren> = ({ children }) => (
|
||||
<NuqsTestingAdapter searchParams={searchParams} onUrlUpdate={onUrlUpdate} hasMemory>
|
||||
<QueryClientProvider client={testQueryClient}>{children}</QueryClientProvider>
|
||||
<QueryClientProvider client={testQueryClient}>
|
||||
<AutoRouterAvailabilityDebounceContext.Provider value={0}>{children}</AutoRouterAvailabilityDebounceContext.Provider>
|
||||
</QueryClientProvider>
|
||||
</NuqsTestingAdapter>
|
||||
);
|
||||
return render(ui, { wrapper: Providers, ...renderOptions });
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue