Lines 44-84javascript
45 expect(`${manifest.name}:${skillName}`).toBe("reports:build");
47 it("includes the full reports capability bundle", () => {
48 expect(existsSync(join(skillRoot, "references", "report-contracts.md"))).toBe(true);
49 expect(existsSync(join(skillRoot, "scripts", "scaffold-report.mjs"))).toBe(true);
50 expect(existsSync(join(skillRoot, "scripts", "report-paths.mjs"))).toBe(true);
51 expect(existsSync(join(skillRoot, "templates", "report-definition.md"))).toBe(true);
52 expect(existsSync(join(skillRoot, "templates", "report-index.html"))).toBe(true);
54 it("includes the bundled reports plugin payload in Bridge package files", () => {
55 expect(bridgePackageFiles()).toContain("plugins");
56 expect(existsSync(join(reportsRoot, ".claude-plugin", "plugin.json"))).toBe(true);
57 expect(existsSync(join(skillRoot, "SKILL.md"))).toBe(true);
58 expect(existsSync(join(skillRoot, "references", "report-contracts.md"))).toBe(true);
59 expect(existsSync(join(skillRoot, "scripts", "scaffold-report.mjs"))).toBe(true);
60 expect(existsSync(join(skillRoot, "scripts", "report-paths.mjs"))).toBe(true);
61 expect(existsSync(join(skillRoot, "templates", "report-definition.md"))).toBe(true);
62 expect(existsSync(join(skillRoot, "templates", "report-index.html"))).toBe(true);
64 it("keeps the vendored scaffold path contract in sync", async () => {
65 const pluginContract = (await import(__rewriteRelativeImportExtension(pathToFileURL(join(skillRoot, "scripts", "report-paths.mjs")).href)));
66 const scaffoldContract = (await import(__rewriteRelativeImportExtension(pathToFileURL(join(repoRoot, "apps", "scaffold-template", "__tooling__", "watcher", "base", "report-contract.mjs")).href)));
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/hono/plugins.test.jsView on unpkg · L64 67 expect(pluginContract.ReportFileContract.isValidSlug("weekly-summary")).toBe(scaffoldContract.ReportFileContract.isValidSlug("weekly-summary"));
68 expect(pluginContract.ReportFileContract.isValidSlug("Weekly Summary")).toBe(scaffoldContract.ReportFileContract.isValidSlug("Weekly Summary"));
69 expect(pluginContract.ReportFileContract.titleFromSlug("weekly-summary")).toBe(scaffoldContract.ReportFileContract.titleFromSlug("weekly-summary"));
70 expect(pluginContract.ReportFileContract.paths("weekly-summary")).toEqual(scaffoldContract.ReportFileContract.paths("weekly-summary"));
72 it("scaffolds report files in a company repo root", async () => {
73 const tempDir = mkdtempSync(join(tmpdir(), "baker-reports-plugin-"));
75 const script = (await import(__rewriteRelativeImportExtension(pathToFileURL(join(skillRoot, "scripts", "scaffold-report.mjs")).href)));
76 const result = script.createReportFiles("weekly-summary", tempDir);
77 expect(result.slug).toBe("weekly-summary");
78 expect(result.files).toEqual([
79 join(tempDir, "reports/server/routes/reports/data/weekly-summary.get.ts"),
80 join(tempDir, "reports/public/weekly-summary/index.html"),
81 join(tempDir, "reports/public/weekly-summary/_definition.md"),
83 const endpointPath = join(tempDir, "reports/server/routes/reports/data/weekly-summary.get.ts");
84 const dashboardPath = join(tempDir, "reports/public/weekly-summary/index.html");