refactor(tests): use namespace import for auto-prompts to avoid stale exports

This commit is contained in:
Mikael Hugo 2026-05-16 23:18:16 +02:00
parent 4f460b54a3
commit 950e345085
2 changed files with 36 additions and 29 deletions

View file

@ -10,12 +10,7 @@ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterEach, describe, expect, test } from "vitest";
import {
buildPlanMilestonePrompt,
buildReplanSlicePrompt,
buildResearchSlicePrompt,
buildValidateMilestonePrompt,
} from "../auto-prompts.js";
import * as AutoPrompts from "../auto-prompts.js";
import {
closeDatabase,
insertMilestone,
@ -72,7 +67,7 @@ describe("buildPlanMilestonePrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildPlanMilestonePrompt(
const prompt = await AutoPrompts.buildPlanMilestonePrompt(
mid,
"Test Milestone",
dir,
@ -97,7 +92,7 @@ describe("buildPlanMilestonePrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildPlanMilestonePrompt(
const prompt = await AutoPrompts.buildPlanMilestonePrompt(
mid,
"Minimal Milestone",
dir,
@ -122,7 +117,7 @@ describe("buildPlanMilestonePrompt v2", () => {
mkdirSync(join(dir, ".sf"), { recursive: true });
writeFileSync(join(dir, ".sf", "QUEUE.md"), "M912 — next in queue\n");
const prompt = await buildPlanMilestonePrompt(
const prompt = await AutoPrompts.buildPlanMilestonePrompt(
mid,
"Queue Milestone",
dir,
@ -154,7 +149,7 @@ describe("buildReplanSlicePrompt v2", () => {
sequence: 1,
});
const prompt = await buildReplanSlicePrompt(
const prompt = await AutoPrompts.buildReplanSlicePrompt(
mid,
"Replan Milestone",
sid,
@ -201,7 +196,7 @@ describe("buildReplanSlicePrompt v2", () => {
"---\nblocker_discovered: true\nid: T01\n---\n# T01 Summary\n\nBlocked by external API.\n",
);
const prompt = await buildReplanSlicePrompt(
const prompt = await AutoPrompts.buildReplanSlicePrompt(
mid,
"Blocker Milestone",
sid,
@ -238,7 +233,7 @@ describe("buildValidateMilestonePrompt v2", () => {
"# M930 Summary\n\nMilestone done.\n",
);
const prompt = await buildValidateMilestonePrompt(
const prompt = await AutoPrompts.buildValidateMilestonePrompt(
mid,
"Validate Milestone",
dir,
@ -272,7 +267,7 @@ describe("buildResearchSlicePrompt v2", () => {
sequence: 1,
});
const prompt = await buildResearchSlicePrompt(
const prompt = await AutoPrompts.buildResearchSlicePrompt(
mid,
"Research Milestone",
sid,

View file

@ -13,15 +13,7 @@ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterEach, describe, expect, test } from "vitest";
import {
buildChallengePrompt,
buildDeployPrompt,
buildReleasePrompt,
buildResearchMilestonePrompt,
buildRollbackPrompt,
buildRunUatPrompt,
buildSmokeProductionPrompt,
} from "../auto-prompts.js";
import * as AutoPrompts from "../auto-prompts.js";
import {
closeDatabase,
insertMilestone,
@ -85,7 +77,7 @@ describe("buildResearchMilestonePrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildResearchMilestonePrompt(
const prompt = await AutoPrompts.buildResearchMilestonePrompt(
mid,
"Research Milestone",
dir,
@ -117,7 +109,7 @@ describe("buildRunUatPrompt v2", () => {
sequence: 1,
});
const prompt = await buildRunUatPrompt(
const prompt = await AutoPrompts.buildRunUatPrompt(
mid,
sid,
join(dir, ".sf", "milestones", mid, "slices", sid, `${sid}-UAT.md`),
@ -141,7 +133,11 @@ describe("buildDeployPrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildDeployPrompt(mid, "Deploy Milestone", dir);
const prompt = await AutoPrompts.buildDeployPrompt(
mid,
"Deploy Milestone",
dir,
);
expect(prompt).toContain("## Inlined Context");
});
@ -158,7 +154,7 @@ describe("buildSmokeProductionPrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildSmokeProductionPrompt(
const prompt = await AutoPrompts.buildSmokeProductionPrompt(
mid,
"Smoke Milestone",
"dr-001",
@ -180,7 +176,11 @@ describe("buildReleasePrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildReleasePrompt(mid, "Release Milestone", dir);
const prompt = await AutoPrompts.buildReleasePrompt(
mid,
"Release Milestone",
dir,
);
expect(prompt).toContain("## Inlined Context");
});
@ -197,7 +197,7 @@ describe("buildRollbackPrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildRollbackPrompt(
const prompt = await AutoPrompts.buildRollbackPrompt(
mid,
"Rollback Milestone",
"dr-002",
@ -220,7 +220,7 @@ describe("buildChallengePrompt v2", () => {
planning: { vision: "Test.", successCriteria: [] },
});
const prompt = await buildChallengePrompt(
const prompt = await AutoPrompts.buildChallengePrompt(
mid,
"Challenge Milestone",
"milestone",
@ -231,3 +231,15 @@ describe("buildChallengePrompt v2", () => {
expect(prompt).toContain("## Inlined Context");
});
});
describe.skip("buildRoadmapMeetingPrompt v2 — SKIPPED", () => {
// KNOWN_UNIT_TYPES declares "roadmap-meeting" as a unit type, but
// auto-prompts.js has no `buildRoadmapMeetingPrompt` function exported.
// No builder exists for this unit type — it is handled externally by
// the roadmap-meeting flow. This test documents the known gap so it
// is not silently re-ordered or forgotten.
test("roadmap_meeting_builder_does_not_exist", () => {
// Attempting to import would throw a SyntaxError or MODULE_NOT_FOUND
// if the builder ever appears. The skip is the structural proof.
});
});