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:
Devin AI 2026-09-24 10:32:23 +00:00
parent 04f3ade124
commit c2dfcca328
3 changed files with 11 additions and 3 deletions

View file

@ -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 }) =>

View file

@ -0,0 +1,3 @@
import { createContext } from "react";
export const AutoRouterAvailabilityDebounceContext = createContext(300);

View file

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