feat(web): redirect /fleet to Dashboard; update fleet tests
/fleet now redirects to / so bookmarks and muscle-memory links land on the unified Dashboard rather than a 404-style dead route. Fleet tests updated to assert the redirect and the per-instance rows the Dashboard renders.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { createFileRoute } from "@tanstack/react-router";
|
import { createFileRoute, redirect } from "@tanstack/react-router";
|
||||||
import { FleetDashboard } from "@/components/fleet/FleetDashboard";
|
|
||||||
|
|
||||||
export const Route = createFileRoute("/fleet")({
|
export const Route = createFileRoute("/fleet")({
|
||||||
component: FleetDashboard,
|
beforeLoad: () => {
|
||||||
|
throw redirect({ to: "/" });
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -155,21 +155,18 @@ describe("Fleet route", () => {
|
|||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("mounts FleetDashboard at /fleet when an instance is configured", async () => {
|
it("redirects /fleet to the Dashboard", async () => {
|
||||||
saveStore({ instances: [neo], activeId: "neo" });
|
saveStore({ instances: [neo], activeId: "neo" });
|
||||||
renderRouteAt("/fleet");
|
renderRouteAt("/fleet");
|
||||||
expect(await screen.findByRole("heading", { name: /Fleet/i })).toBeInTheDocument();
|
expect(await screen.findByRole("heading", { name: "Dashboard" })).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders one table row per configured instance", async () => {
|
it("shows each instance after /fleet redirect", async () => {
|
||||||
saveStore({ instances: [neo, iris], activeId: "neo" });
|
saveStore({ instances: [neo, iris], activeId: "neo" });
|
||||||
renderRouteAt("/fleet");
|
renderRouteAt("/fleet");
|
||||||
const table = await screen.findByRole("table");
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(within(table).getByText("Neo")).toBeInTheDocument();
|
expect(screen.getByText("Neo — no workspaces")).toBeInTheDocument();
|
||||||
expect(within(table).getByText("Iris")).toBeInTheDocument();
|
expect(screen.getByText("Iris — no workspaces")).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
// 1 header + 2 instance rows
|
|
||||||
expect(within(table).getAllByRole("row")).toHaveLength(3);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user