test(cli): assert build-script docs and CLI-first default build
Adds guards so README and CONTRIBUTING stay in sync with the actual default `pnpm build` (excluding desktop/mobile) and the explicit opt-in scripts for full / desktop / mobile builds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ describe("CI workflow (.github/workflows/ci.yml)", () => {
|
|||||||
let content: string;
|
let content: string;
|
||||||
let ciSteps: any[];
|
let ciSteps: any[];
|
||||||
let contributingContent: string;
|
let contributingContent: string;
|
||||||
|
let readmeContent: string;
|
||||||
let cliPackageJsonContent: string;
|
let cliPackageJsonContent: string;
|
||||||
let extensionSuiteContent: string;
|
let extensionSuiteContent: string;
|
||||||
let agentExportSuiteContent: string;
|
let agentExportSuiteContent: string;
|
||||||
@@ -35,6 +36,7 @@ describe("CI workflow (.github/workflows/ci.yml)", () => {
|
|||||||
content = result.content;
|
content = result.content;
|
||||||
ciSteps = workflow.jobs?.ci?.steps ?? [];
|
ciSteps = workflow.jobs?.ci?.steps ?? [];
|
||||||
contributingContent = readFileSync(join(workspaceRoot, "docs", "contributing.md"), "utf-8");
|
contributingContent = readFileSync(join(workspaceRoot, "docs", "contributing.md"), "utf-8");
|
||||||
|
readmeContent = readFileSync(join(workspaceRoot, "README.md"), "utf-8");
|
||||||
cliPackageJsonContent = readFileSync(join(workspaceRoot, "packages", "cli", "package.json"), "utf-8");
|
cliPackageJsonContent = readFileSync(join(workspaceRoot, "packages", "cli", "package.json"), "utf-8");
|
||||||
extensionSuiteContent = readFileSync(
|
extensionSuiteContent = readFileSync(
|
||||||
join(workspaceRoot, "packages", "cli", "src", "__tests__", "extension.test.ts"),
|
join(workspaceRoot, "packages", "cli", "src", "__tests__", "extension.test.ts"),
|
||||||
@@ -112,6 +114,14 @@ describe("CI workflow (.github/workflows/ci.yml)", () => {
|
|||||||
expect(contributingContent).toContain("test:extension-integration");
|
expect(contributingContent).toContain("test:extension-integration");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps docs aligned with default and explicit build commands", () => {
|
||||||
|
expect(readmeContent).toContain("pnpm build # Build default workspace packages (excludes desktop/mobile)");
|
||||||
|
expect(readmeContent).toContain("pnpm build:all # Build all packages (including desktop/mobile)");
|
||||||
|
|
||||||
|
expect(contributingContent).toContain("pnpm build # default build (excludes desktop/mobile)");
|
||||||
|
expect(contributingContent).toContain("pnpm build:all # full recursive build including desktop/mobile");
|
||||||
|
});
|
||||||
|
|
||||||
it("includes binary build step", () => {
|
it("includes binary build step", () => {
|
||||||
expect(content).toContain("build:exe");
|
expect(content).toContain("build:exe");
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -133,6 +133,22 @@ describe("Workspace bootstrap script contract", () => {
|
|||||||
expect(testIdx).toBeGreaterThan(lintIdx);
|
expect(testIdx).toBeGreaterThan(lintIdx);
|
||||||
expect(buildIdx).toBeGreaterThan(testIdx);
|
expect(buildIdx).toBeGreaterThan(testIdx);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps default build CLI-first by excluding desktop/mobile", () => {
|
||||||
|
expect(rootPkg.scripts?.build).toBe(
|
||||||
|
"pnpm -r --filter=!@fusion/desktop --filter=!@fusion/mobile build",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps explicit opt-in scripts for full, desktop, and mobile builds", () => {
|
||||||
|
expect(rootPkg.scripts?.["build:all"]).toBe("pnpm -r build");
|
||||||
|
expect(rootPkg.scripts?.["build:desktop"]).toBe(
|
||||||
|
"pnpm --filter @fusion/desktop build",
|
||||||
|
);
|
||||||
|
expect(rootPkg.scripts?.["mobile:build"]).toBe(
|
||||||
|
"pnpm --filter @fusion/dashboard build && pnpm --filter @fusion/mobile cap sync",
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Workflow YAML validity", () => {
|
describe("Workflow YAML validity", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user