mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 23:50:44 +00:00
32 lines
1.5 KiB
TypeScript
32 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { buildQaCoverageInventory, renderQaCoverageMarkdownReport } from "./coverage-report.js";
|
|
import { readQaScenarioPack } from "./scenario-catalog.js";
|
|
|
|
describe("qa coverage report", () => {
|
|
it("groups scenario coverage metadata by theme and surface", () => {
|
|
const inventory = buildQaCoverageInventory(readQaScenarioPack().scenarios);
|
|
|
|
expect(inventory.scenarioCount).toBeGreaterThan(0);
|
|
expect(inventory.coverageIdCount).toBeGreaterThan(0);
|
|
expect(inventory.primaryCoverageIdCount).toBeGreaterThan(0);
|
|
expect(inventory.secondaryCoverageIdCount).toBeGreaterThan(0);
|
|
expect(inventory.overlappingCoverage.length).toBeGreaterThan(0);
|
|
expect(inventory.missingCoverage).toEqual([]);
|
|
expect(inventory.byTheme.memory.some((feature) => feature.id === "memory.recall")).toBe(true);
|
|
expect(inventory.bySurface.memory.some((feature) => feature.id === "memory.recall")).toBe(true);
|
|
});
|
|
|
|
it("renders a compact markdown inventory", () => {
|
|
const report = renderQaCoverageMarkdownReport(
|
|
buildQaCoverageInventory(readQaScenarioPack().scenarios),
|
|
);
|
|
|
|
expect(report).toContain("# QA Coverage Inventory");
|
|
expect(report).toContain("- Missing coverage metadata: 0");
|
|
expect(report).toContain("- Overlapping coverage IDs:");
|
|
expect(report).toContain("memory.recall");
|
|
expect(report).toContain("primary: memory-recall (qa/scenarios/memory/memory-recall.md)");
|
|
expect(report).toContain("secondary: active-memory-preprompt-recall");
|
|
});
|
|
});
|