feat(FN-2567): add pi-claude-cli provider icon alias
- Map the pi-claude-cli provider key to the Claude CLI icon config in ProviderIcon. - Reuse Anthropic tokenized provider color and accessible label for the new alias. - Add dashboard tests asserting icon rendering, color/label metadata, and mixed-case alias normalization.
This commit is contained in:
@@ -236,6 +236,7 @@ const providerConfig: Record<
|
||||
// Branded provider colors are tokenized in app/styles.css for theme-system consistency.
|
||||
anthropic: { component: AnthropicIcon, color: "var(--provider-anthropic)" },
|
||||
"claude-cli": { component: ClaudeCliIcon, color: "var(--provider-anthropic)", label: "Anthropic — via Claude CLI" },
|
||||
"pi-claude-cli": { component: ClaudeCliIcon, color: "var(--provider-anthropic)", label: "Anthropic — via Claude CLI" },
|
||||
|
||||
openai: { component: OpenAIIcon, color: "var(--provider-openai)" },
|
||||
"openai-codex": { component: OpenAIIcon, color: "var(--provider-openai)", label: "OpenAI Codex" }, // OpenAI alias
|
||||
|
||||
@@ -38,6 +38,23 @@ describe("ProviderIcon", () => {
|
||||
expect(badgeGlyph).toHaveAttribute("stroke", "var(--provider-icon-contrast)");
|
||||
});
|
||||
|
||||
it("renders pi-claude-cli with Claude CLI icon, label, and provider color", () => {
|
||||
render(<ProviderIcon provider="pi-claude-cli" />);
|
||||
const svg = screen.getByTestId("claude-cli-icon");
|
||||
expect(svg).toBeInTheDocument();
|
||||
expect(screen.getByLabelText("Anthropic — via Claude CLI")).toBeInTheDocument();
|
||||
const wrapper = svg.parentElement;
|
||||
expect(wrapper).toHaveAttribute("data-provider", "pi-claude-cli");
|
||||
expect(wrapper).toHaveStyle({ color: "var(--provider-anthropic)" });
|
||||
});
|
||||
|
||||
it("normalizes PI-Claude-CLI provider name to lowercase alias", () => {
|
||||
render(<ProviderIcon provider="PI-Claude-CLI" />);
|
||||
const svg = screen.getByTestId("claude-cli-icon");
|
||||
expect(svg).toBeInTheDocument();
|
||||
expect(svg.parentElement).toHaveAttribute("data-provider", "pi-claude-cli");
|
||||
});
|
||||
|
||||
it("renders OpenAI brand icon for openai provider", () => {
|
||||
render(<ProviderIcon provider="openai" />);
|
||||
expect(screen.getByTestId("openai-icon")).toBeInTheDocument();
|
||||
|
||||
Reference in New Issue
Block a user