test(scripts): wire scripts/**/*.test.mjs under a vitest runner

241 tests across 16 script test files were wired to NO runner (the
generators vitest config never included them and several used node:test
imports that vitest silently skips). New root vitest.scripts.config.mjs
+ pnpm test:scripts + a CI validate step run them all; node:test imports
converted to vitest keeping node:assert. Split out of 8c88a9a where a
concurrent agent's staged files were swept into the marketing-pages
commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 18:25:43 +02:00
parent bab8fb634f
commit 1883883911
18 changed files with 76 additions and 16 deletions

View File

@@ -12,7 +12,8 @@ import {
function makeWorkTree({ epics }) {
const root = fs.mkdtempSync(path.join(os.tmpdir(), "work-state-"));
for (const [epicId, epicData] of Object.entries(epics)) {
const epicDir = path.join(root, epicId);
// buildState walks <workRoot>/epics/ — mirror the real docs/work layout.
const epicDir = path.join(root, "epics", epicId);
fs.mkdirSync(epicDir, { recursive: true });
fs.writeFileSync(
path.join(epicDir, "_epic.md"),
@@ -85,6 +86,7 @@ describe("buildState", () => {
epic1: {
status: "in-progress",
title: "epic1",
prd: null,
stories: {
story1: {
status: "done",
@@ -127,7 +129,7 @@ describe("buildState", () => {
it("parses depends-on and blocks frontmatter arrays", () => {
const root = fs.mkdtempSync(path.join(os.tmpdir(), "work-dep-"));
const epicDir = path.join(root, "epic1");
const epicDir = path.join(root, "epics", "epic1");
fs.mkdirSync(epicDir, { recursive: true });
fs.writeFileSync(
path.join(epicDir, "_epic.md"),