Spaces:
Build error
Build error
import { render, screen } from "@testing-library/react"; | |
import { describe, expect, it, vi } from "vitest"; | |
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; | |
import { ApiKeysManager } from "#/components/features/settings/api-keys-manager"; | |
// Mock the react-i18next | |
vi.mock("react-i18next", async () => { | |
const actual = await vi.importActual<typeof import("react-i18next")>("react-i18next"); | |
return { | |
...actual, | |
useTranslation: () => ({ | |
t: (key: string) => key, | |
}), | |
Trans: ({ i18nKey, components }: { i18nKey: string; components: Record<string, React.ReactNode> }) => { | |
// Simplified Trans component that renders the link | |
if (i18nKey === "SETTINGS$API_KEYS_DESCRIPTION") { | |
return ( | |
<span> | |
API keys allow you to authenticate with the OpenHands API programmatically. | |
Keep your API keys secure; anyone with your API key can access your account. | |
For more information on how to use the API, see our {components.a} | |
</span> | |
); | |
} | |
return <span>{i18nKey}</span>; | |
}, | |
}; | |
}); | |
// Mock the API keys hook | |
vi.mock("#/hooks/query/use-api-keys", () => ({ | |
useApiKeys: () => ({ | |
data: [], | |
isLoading: false, | |
error: null, | |
}), | |
})); | |
describe("ApiKeysManager", () => { | |
const renderComponent = () => { | |
const queryClient = new QueryClient(); | |
return render( | |
<QueryClientProvider client={queryClient}> | |
<ApiKeysManager /> | |
</QueryClientProvider> | |
); | |
}; | |
it("should render the API documentation link", () => { | |
renderComponent(); | |
// Find the link to the API documentation | |
const link = screen.getByRole("link"); | |
expect(link).toBeInTheDocument(); | |
expect(link).toHaveAttribute("href", "https://docs.all-hands.dev/usage/cloud/cloud-api"); | |
expect(link).toHaveAttribute("target", "_blank"); | |
expect(link).toHaveAttribute("rel", "noopener noreferrer"); | |
}); | |
}); |