31 lines
925 B
JavaScript
31 lines
925 B
JavaScript
import assert from "node:assert/strict";
|
|
import { test } from "node:test";
|
|
|
|
import { findNumberedMilestoneNames } from "./lib/numbered-milestones.mjs";
|
|
|
|
test("rejects numbered construction labels in paths and identifiers", () => {
|
|
const candidates = [
|
|
"src/phase7/session.ts",
|
|
"protocol/fixtures/phase-04b/input.json",
|
|
"export class Phase3Runner {}",
|
|
'"trace:phase2": "node dist/phase2.js"',
|
|
"Phases 0 through 3",
|
|
];
|
|
|
|
assert.deepEqual(
|
|
candidates.map((candidate) => findNumberedMilestoneNames(candidate).length),
|
|
[1, 1, 1, 2, 1],
|
|
);
|
|
});
|
|
|
|
test("allows unnumbered domain phase terminology and semantic protocol versions", () => {
|
|
const candidates = [
|
|
"runtime.phase.changed",
|
|
"phase: LifecyclePhase",
|
|
"transition to the recovery phase",
|
|
"paperclip.prp.control.v1",
|
|
];
|
|
|
|
assert.ok(candidates.every((candidate) => findNumberedMilestoneNames(candidate).length === 0));
|
|
});
|