feat(FN-3637): establish canonical roadmap plugin ID and compatibility rout
Merged commits stabilize the Fusion roadmap plugin's identity and routing surface, establishing a canonical plugin ID and compatibility routes so the roadmap plugin integrates cleanly with the dashboard's plugin system. Added new roadmap-routes and roadmap-suggestions modules in the dashboard packag Fusion-Task-Id: FN-3637
This commit is contained in:
@@ -18,7 +18,7 @@ describe("pluginViewRegistry", () => {
|
||||
|
||||
it("builds plugin IDs", () => {
|
||||
expect(getPluginViewId("plugin-a", "main")).toBe("plugin:plugin-a:main");
|
||||
expect(getPluginViewId("roadmap-planner", "roadmaps")).toBe("plugin:roadmap-planner:roadmaps");
|
||||
expect(getPluginViewId("fusion-plugin-roadmap", "roadmaps")).toBe("plugin:fusion-plugin-roadmap:roadmaps");
|
||||
});
|
||||
|
||||
it("parses and validates plugin IDs", () => {
|
||||
@@ -78,11 +78,11 @@ describe("pluginViewRegistry", () => {
|
||||
expect(await screen.findByText("proj-1")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("resolves roadmap-planner registry entry and avoids unavailable fallback", async () => {
|
||||
it("resolves fusion-plugin-roadmap registry entry and avoids unavailable fallback", async () => {
|
||||
const RoadmapsView = lazy(async () => ({ default: () => <div>Roadmaps Plugin View</div> }));
|
||||
registerPluginView("roadmap-planner", "roadmaps", RoadmapsView);
|
||||
registerPluginView("fusion-plugin-roadmap", "roadmaps", RoadmapsView);
|
||||
|
||||
render(<>{PluginDashboardViewHost({ viewId: "plugin:roadmap-planner:roadmaps" })}</>);
|
||||
render(<>{PluginDashboardViewHost({ viewId: "plugin:fusion-plugin-roadmap:roadmaps" })}</>);
|
||||
|
||||
expect(await screen.findByText("Roadmaps Plugin View")).toBeInTheDocument();
|
||||
expect(screen.queryByTestId("plugin-view-unavailable")).toBeNull();
|
||||
|
||||
@@ -15,7 +15,7 @@ vi.mock("@fusion-plugin-examples/dependency-graph/dashboard-view", () => ({
|
||||
DependencyGraphDashboardView: (...args: unknown[]) => MockDependencyGraphDashboardView(...args),
|
||||
}));
|
||||
|
||||
vi.mock("@fusion-plugin-examples/roadmap/dashboard-view", () => ({
|
||||
vi.mock("@fusion-plugin-examples/fusion-plugin-roadmap/dashboard-view", () => ({
|
||||
RoadmapDashboardView: (...args: unknown[]) => MockRoadmapDashboardView(...args),
|
||||
}));
|
||||
|
||||
@@ -37,7 +37,7 @@ describe("registerBundledPluginViews", () => {
|
||||
registerBundledPluginViews();
|
||||
|
||||
expect(getPluginViewComponent("fusion-plugin-dependency-graph", "graph")).toBeTruthy();
|
||||
expect(getPluginViewComponent("roadmap-planner", "roadmaps")).toBeTruthy();
|
||||
expect(getPluginViewComponent("fusion-plugin-roadmap", "roadmaps")).toBeTruthy();
|
||||
expect(getPluginViewComponent("fusion-plugin-cli-printing-press", "wizard")).toBeTruthy();
|
||||
expect(getPluginViewComponent("fusion-plugin-cli-printing-press", "manage")).toBeTruthy();
|
||||
});
|
||||
@@ -56,7 +56,7 @@ describe("registerBundledPluginViews", () => {
|
||||
registerBundledPluginViews();
|
||||
|
||||
expect(isPluginViewRegistered("fusion-plugin-dependency-graph", "graph")).toBe(true);
|
||||
expect(isPluginViewRegistered("roadmap-planner", "roadmaps")).toBe(true);
|
||||
expect(isPluginViewRegistered("fusion-plugin-roadmap", "roadmaps")).toBe(true);
|
||||
expect(isPluginViewRegistered("fusion-plugin-cli-printing-press", "wizard")).toBe(true);
|
||||
expect(isPluginViewRegistered("fusion-plugin-cli-printing-press", "manage")).toBe(true);
|
||||
// Unknown plugin/view should not be registered
|
||||
|
||||
@@ -80,7 +80,7 @@ export function registerBundledPluginViews(): void {
|
||||
);
|
||||
|
||||
registerPluginView(
|
||||
"roadmap-planner",
|
||||
"fusion-plugin-roadmap",
|
||||
"roadmaps",
|
||||
lazy(loadRoadmapView),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user