import { render, screen } from "@testing-library/react";
import { MemoryRouter, Route, Routes } from "react-router-dom";
import { describe, expect, it, vi } from "vitest";
import { ProtectedRoute } from "./protected-route";
const mockUseAuth = vi.fn();
vi.mock("../state/auth", () => ({
useAuth: () => mockUseAuth()
}));
describe("ProtectedRoute", () => {
it("shows loading while session is resolving", () => {
mockUseAuth.mockReturnValue({ state: "loading" });
render(
private content
);
expect(screen.getByText("Checking session...")).toBeInTheDocument();
});
it("redirects unauthenticated users to login", () => {
mockUseAuth.mockReturnValue({ state: "unauthenticated" });
render(
private content
}
/>
login page} />
);
expect(screen.getByText("login page")).toBeInTheDocument();
});
});