diff --git a/ui/litellm-dashboard/src/app/(dashboard)/hooks/models/useModels.test.ts b/ui/litellm-dashboard/src/app/(dashboard)/hooks/models/useModels.test.ts index c6629e5396a..399bb3601aa 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/hooks/models/useModels.test.ts +++ b/ui/litellm-dashboard/src/app/(dashboard)/hooks/models/useModels.test.ts @@ -101,7 +101,8 @@ describe("useModelsInfo", () => { "test-user-id", "Admin", 1, - 50 + 50, + undefined ); expect(modelInfoCall).toHaveBeenCalledTimes(1); }); @@ -120,7 +121,8 @@ describe("useModelsInfo", () => { "test-user-id", "Admin", 2, - 25 + 25, + undefined ); }); diff --git a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AllModelsTab.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AllModelsTab.test.tsx index 8a2298361c5..813a365d367 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AllModelsTab.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AllModelsTab.test.tsx @@ -11,7 +11,7 @@ const mockUseModelsInfo = vi.fn(() => ({ })) as any; vi.mock("../../hooks/models/useModels", () => ({ - useModelsInfo: (page?: number, size?: number) => mockUseModelsInfo(page, size), + useModelsInfo: (page?: number, size?: number, search?: string) => mockUseModelsInfo(page, size, search), })); // Mock the useModelCostMap hook @@ -74,7 +74,6 @@ describe("AllModelsTab", () => { const mockSetSelectedModelGroup = vi.fn(); const mockSetSelectedModelId = vi.fn(); const mockSetSelectedTeamId = vi.fn(); - const mockSetEditModel = vi.fn(); const defaultProps = { selectedModelGroup: "all", @@ -83,7 +82,6 @@ describe("AllModelsTab", () => { availableModelAccessGroups: ["sales-team", "engineering-team"], setSelectedModelId: mockSetSelectedModelId, setSelectedTeamId: mockSetSelectedTeamId, - setEditModel: mockSetEditModel, }; const mockUseAuthorized = { @@ -176,8 +174,10 @@ describe("AllModelsTab", () => { render(); + // Component shows API total_count (2), not filtered count + // Since default is "personal" team and models don't have direct_access, they're filtered out await waitFor(() => { - expect(screen.getByText("Showing 0 results")).toBeInTheDocument(); + expect(screen.getByText("Showing 1 - 2 of 2 results")).toBeInTheDocument(); }); }); @@ -235,8 +235,10 @@ describe("AllModelsTab", () => { render(); + // Component shows API total_count (2), not filtered count + // Since default is "personal" team and models don't have direct_access, they're filtered out await waitFor(() => { - expect(screen.getByText("Showing 0 results")).toBeInTheDocument(); + expect(screen.getByText("Showing 1 - 2 of 2 results")).toBeInTheDocument(); }); }); @@ -280,8 +282,9 @@ describe("AllModelsTab", () => { render(); + // Component shows API total_count (2), but only 1 model has direct_access await waitFor(() => { - expect(screen.getByText("Showing 1 - 1 of 1 results")).toBeInTheDocument(); + expect(screen.getByText("Showing 1 - 2 of 2 results")).toBeInTheDocument(); }); }); @@ -419,14 +422,15 @@ describe("AllModelsTab", () => { ); // Set up mock to return page1Data for page 1 - mockUseModelsInfo.mockImplementation((page: number = 1) => { + mockUseModelsInfo.mockImplementation((page: number = 1, size?: number, search?: string) => { return { data: page1Data, isLoading: false, error: null }; }); render(); await waitFor(() => { - expect(screen.getByText("Showing 1 - 1 of 1 results")).toBeInTheDocument(); + // Component calculates: ((1-1)*50)+1 = 1, Math.min(1*50, 2) = 2 + expect(screen.getByText("Showing 1 - 2 of 2 results")).toBeInTheDocument(); }); // Check that Previous button is disabled on first page @@ -471,7 +475,7 @@ describe("AllModelsTab", () => { 50, // size ); - mockUseModelsInfo.mockImplementation(() => { + mockUseModelsInfo.mockImplementation((page?: number, size?: number, search?: string) => { return { data: singlePageData, isLoading: false, error: null }; });