/// import { describe, it, expect, vi } from "vitest"; import { render, screen, waitFor } from "@testing-library/react"; import AlpacaAccountInfo from "../AlpacaAccountInfo"; describe("AlpacaAccountInfo", () => { it("displays account info after loading", async () => { const mockFetch = vi.fn().mockResolvedValue({ ok: true, json: async () => ({ cash: 12345.67, buying_power: 8000.0, portfolio_value: 25000.0, }), }); globalThis.fetch = mockFetch; render(); await waitFor(() => { expect(screen.getByText(/Alpaca Account/i)).toBeInTheDocument(); }); // Use regex to match number regardless of locale decimal separator expect(screen.getByText(/\$12[\.,]345/)).toBeInTheDocument(); expect(screen.getByText(/\$8[\.,]000/)).toBeInTheDocument(); expect(screen.getByText(/\$25[\.,]000/)).toBeInTheDocument(); }); it("displays error when fetch fails", async () => { const mockFetch = vi.fn().mockRejectedValue(new Error("Network error")); globalThis.fetch = mockFetch; render(); await waitFor(() => { expect(screen.getByText(/Failed to load account info/i)).toBeInTheDocument(); }); }); });