feat(FN-2668): merge fusion/fn-2668

This commit is contained in:
gsxdsm
2026-04-27 02:29:40 -07:00
parent ed208452a7
commit e38a993350
3 changed files with 29 additions and 1 deletions

View File

@@ -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)" },

View File

@@ -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')) {

View File

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