feat(FN-3158): migrate roadmap domain modules to fusion-plugin-roadmap pack
The merge extracts the roadmap domain into a standalone plugin package (`plugins/fusion-plugin-roadmap`), wiring it into the CLI bundle and dashboard scaffold, with new modules for roadmap types, store, ordering, and handoff logic. A secondary change normalizes shell host bootstrap, introducing `She Fusion-Task-Id: FN-3158
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import { resolve } from "node:path";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { RoadmapStore as CoreRoadmapStore } from "@fusion/core";
|
||||
import plugin, {
|
||||
RoadmapStore,
|
||||
applyRoadmapFeatureReorder,
|
||||
@@ -14,12 +15,33 @@ import plugin, {
|
||||
} from "../index.js";
|
||||
|
||||
describe("fusion-plugin-roadmap package surface", () => {
|
||||
it("keeps manifest and plugin entry metadata aligned", () => {
|
||||
const manifest = JSON.parse(readFileSync(resolve(process.cwd(), "manifest.json"), "utf8")) as {
|
||||
id: string;
|
||||
version: string;
|
||||
dashboardViews?: Array<{ viewId: string }>;
|
||||
};
|
||||
|
||||
expect(plugin.manifest.id).toBe(manifest.id);
|
||||
expect(plugin.manifest.version).toBe(manifest.version);
|
||||
expect(plugin.dashboardViews?.[0]?.viewId).toBe(manifest.dashboardViews?.[0]?.viewId);
|
||||
});
|
||||
|
||||
it("declares expected package exports", () => {
|
||||
const pkg = JSON.parse(readFileSync(resolve(process.cwd(), "package.json"), "utf8")) as {
|
||||
exports: Record<string, unknown>;
|
||||
};
|
||||
|
||||
expect(pkg.exports).toHaveProperty(".");
|
||||
expect(pkg.exports).toHaveProperty("./server");
|
||||
expect(pkg.exports).toHaveProperty("./dashboard-view");
|
||||
});
|
||||
|
||||
it("exports plugin manifest with roadmap id", () => {
|
||||
expect(plugin.manifest.id).toBe("fusion-plugin-roadmap");
|
||||
});
|
||||
|
||||
it("re-exports roadmap domain symbols", () => {
|
||||
expect(RoadmapStore).toBe(CoreRoadmapStore);
|
||||
expect(typeof normalizeRoadmapMilestoneOrder).toBe("function");
|
||||
expect(typeof applyRoadmapMilestoneReorder).toBe("function");
|
||||
expect(typeof normalizeRoadmapFeatureOrder).toBe("function");
|
||||
|
||||
Reference in New Issue
Block a user