feat(FN-2668): merge fusion/fn-2668
This commit is contained in:
@@ -300,6 +300,7 @@ const providerConfig: Record<
|
||||
|
||||
google: { component: GeminiIcon, color: "var(--provider-gemini)" },
|
||||
gemini: { component: GeminiIcon, color: "var(--provider-gemini)" }, // Gemini alias family
|
||||
"google-antigravity": { component: GeminiIcon, color: "var(--provider-gemini)", label: "Google Gemini" },
|
||||
|
||||
// Monochrome marks use theme-aware text color for dark/light safety.
|
||||
ollama: { component: OllamaIcon, color: "var(--text)" },
|
||||
|
||||
@@ -286,7 +286,7 @@ function getProviderIconKey(providerName: string): string {
|
||||
if (normalized.includes('codex') || normalized.includes('openai') || normalized.includes('gpt')) {
|
||||
return 'openai';
|
||||
}
|
||||
if (normalized.includes('gemini') || normalized.includes('google')) {
|
||||
if (normalized.includes('gemini') || normalized.includes('google') || normalized.includes('antigravity')) {
|
||||
return 'google';
|
||||
}
|
||||
if (normalized.includes('ollama')) {
|
||||
|
||||
@@ -73,6 +73,12 @@ describe("ProviderIcon", () => {
|
||||
expect(screen.getByLabelText("Google Gemini")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Gemini brand icon for google-antigravity provider", () => {
|
||||
render(<ProviderIcon provider="google-antigravity" />);
|
||||
expect(screen.getByTestId("gemini-icon")).toBeInTheDocument();
|
||||
expect(screen.getByLabelText("Google Gemini")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Ollama brand icon for ollama provider", () => {
|
||||
render(<ProviderIcon provider="ollama" />);
|
||||
expect(screen.getByTestId("ollama-icon")).toBeInTheDocument();
|
||||
@@ -105,6 +111,13 @@ describe("ProviderIcon", () => {
|
||||
expect(wrapper).toHaveAttribute("data-provider", "anthropic");
|
||||
});
|
||||
|
||||
it("normalizes Google-Antigravity (capitalized) to google-antigravity", () => {
|
||||
render(<ProviderIcon provider="Google-Antigravity" />);
|
||||
expect(screen.getByTestId("gemini-icon")).toBeInTheDocument();
|
||||
const wrapper = screen.getByTestId("gemini-icon").parentElement;
|
||||
expect(wrapper).toHaveAttribute("data-provider", "google-antigravity");
|
||||
});
|
||||
|
||||
it("applies provider-specific color for anthropic", () => {
|
||||
render(<ProviderIcon provider="anthropic" />);
|
||||
const icon = screen.getByTestId("anthropic-icon").parentElement;
|
||||
@@ -123,6 +136,12 @@ describe("ProviderIcon", () => {
|
||||
expect(icon).toHaveStyle({ color: "var(--provider-gemini)" });
|
||||
});
|
||||
|
||||
it("applies provider-specific color for google-antigravity", () => {
|
||||
render(<ProviderIcon provider="google-antigravity" />);
|
||||
const icon = screen.getByTestId("gemini-icon").parentElement;
|
||||
expect(icon).toHaveStyle({ color: "var(--provider-gemini)" });
|
||||
});
|
||||
|
||||
it("applies theme-safe color for ollama", () => {
|
||||
render(<ProviderIcon provider="ollama" />);
|
||||
const icon = screen.getByTestId("ollama-icon").parentElement;
|
||||
@@ -201,6 +220,14 @@ describe("ProviderIcon", () => {
|
||||
expect(paths[0]).toHaveAttribute("fill", "var(--provider-gemini)");
|
||||
});
|
||||
|
||||
it("passes correct color to SVG fill for google-antigravity", () => {
|
||||
render(<ProviderIcon provider="google-antigravity" />);
|
||||
const svg = screen.getByTestId("gemini-icon");
|
||||
const paths = svg.querySelectorAll("path");
|
||||
expect(paths.length).toBeGreaterThan(0);
|
||||
expect(paths[0]).toHaveAttribute("fill", "var(--provider-gemini)");
|
||||
});
|
||||
|
||||
it("passes theme-safe color to SVG fill for ollama", () => {
|
||||
render(<ProviderIcon provider="ollama" />);
|
||||
const svg = screen.getByTestId("ollama-icon");
|
||||
|
||||
Reference in New Issue
Block a user