import { describe, it, expect, vi } from "vitest";
import { render, screen } from "@testing-library/react";
import "@testing-library/jest-dom";

// Mock @tanstack/react-router so we don't need a full router context
vi.mock("@tanstack/react-router", () => ({
  createRootRoute: vi.fn((opts: { component: React.ComponentType }) => ({
    options: { component: opts.component },
  })),
  Outlet: () => <div data-testid="outlet" />,
}));

describe("Root route", () => {
  it("wraps Outlet with TanstackTrpcProvider (children render)", async () => {
    const { Route } = await import("./__root");
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const RootComponent = (Route as any).options.component as React.ComponentType;

    render(<RootComponent />);

    expect(screen.getByTestId("outlet")).toBeInTheDocument();
  });
});
