feat(FN-2607): merge fusion/fn-2607 (auto-resolved)

- test(FN-2607): complete Step 3 — update usage indicator assertions
- feat(FN-2607): complete Step 2 — hide labels for hidden usage rows
- feat(FN-2607): complete Step 1 — remove connected provider badge
This commit is contained in:
Fusion
2026-04-26 12:53:43 -07:00
committed by gsxdsm
parent bbc872cee9
commit 545c8a69f4
3 changed files with 28 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import { describe, it, expect, vi, beforeEach } from "vitest";
import { render, screen, fireEvent } from "@testing-library/react";
import { UsageIndicator } from "../UsageIndicator";
import "../PlanningModeModal.css";
import * as useUsageDataModule from "../../hooks/useUsageData";
import type { ProviderUsage } from "../../api";
import { scopedKey } from "../../utils/projectStorage";
@@ -117,7 +118,6 @@ describe("UsageIndicator", () => {
expect(screen.getByText("Google")).toBeInTheDocument();
// Check status badges
expect(screen.getAllByText("Connected").length).toBeGreaterThanOrEqual(1);
expect(screen.getByText("Not configured")).toBeInTheDocument();
// Check usage windows
@@ -318,6 +318,27 @@ describe("UsageIndicator", () => {
expect(mockUseUsageData).toHaveBeenCalledWith({ autoRefresh: false });
});
it("does not render a Connected badge for providers with ok status", () => {
mockUseUsageData.mockReturnValue({
providers: [
{
name: "Anthropic",
icon: "🅰️",
status: "ok",
windows: [],
},
],
loading: false,
error: null,
lastUpdated: new Date(),
refresh: mockRefresh,
});
render(<UsageIndicator isOpen={true} onClose={mockOnClose} projectId={TEST_PROJECT_ID} />);
expect(screen.queryByText("Connected")).not.toBeInTheDocument();
});
it("renders provider error messages", () => {
mockUseUsageData.mockReturnValue({
providers: [
@@ -561,10 +582,12 @@ describe("UsageIndicator", () => {
render(<UsageIndicator isOpen={true} onClose={mockOnClose} projectId={TEST_PROJECT_ID} />);
const sessionLabel = screen.getByText("Session (5h)");
fireEvent.click(screen.getByRole("button", { name: "Hide Session (5h)" }));
const hiddenRow = screen.getByText("Session (5h)").closest(".usage-window");
const hiddenRow = sessionLabel.closest(".usage-window");
expect(hiddenRow).toHaveClass("usage-window--hidden");
expect(sessionLabel).not.toBeVisible();
expect(screen.queryByText("45% used")).not.toBeInTheDocument();
});