Batch 11 of the ad hoc timeout literal migration (epic #4445). Replaces every bare numeric timeout/timeoutMs object-literal property in tests/state-document.test.cjs, tests/phase.test.cjs, tests/commands.test.cjs, tests/pattern.test.cjs, tests/adr-612-bracket-coherence.test.cjs, tests/adr-612-bracket-read-tolerance.test.cjs, tests/milestone-lock.test.cjs, tests/init.test.cjs, tests/state-todos-render.test.cjs, tests/quick-batch.test.cjs, tests/graphify.test.cjs, and tests/effort-surface-axis.test.cjs with a named constant, per eslint-rules/no-adhoc-timeout-literal.cjs. Removes these 12 files from the rule's allowlist. Ground truth via eslint found 25 sites, not the issue's stated 24 (phase.test.cjs has 5, not 4) -- disclosed in the PR body. Reuses PROBE_TIMEOUT_MS, GIT_TIMEOUT_MS, and LOOP_HOOK_POINT_CLI_TIMEOUT_MS across 8 files. Adds two new shared constants to tests/helpers/timeouts.cjs (each independently arrived at by 2 files in this batch, crossing the promotion bar): PATHOLOGICAL_INPUT_TEST_TIMEOUT_MS (node:test's own per-test timeout option, not a subprocess bound) and GSD_TOOLS_CLI_MODERATE_TIMEOUT_MS (a single gsd-tools.cjs CLI subcommand spawn, distinct tier from PROBE_TIMEOUT_MS/LOOP_HOOK_POINT_CLI_TIMEOUT_MS). Adds 3 file-local constants for values used by only 1 file in this batch. No src/bin file touched, no numeric value changed anywhere. Co-authored-by: sim <sim@local> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,14 @@ const { filterAlreadyExecuted } = require('../gsd-core/bin/lib/quick-batch-dispa
|
||||
const { generateSlugInternal } = require('../gsd-core/bin/lib/core-utils.cjs');
|
||||
const { planningPaths } = require('../gsd-core/bin/lib/planning-workspace.cjs');
|
||||
|
||||
/**
|
||||
* A single `mkfifo` subprocess call, near-instant. Distinct from
|
||||
* tests/capability-cli.test.cjs's mkfifo call (epic #4445 batch 10, which
|
||||
* reuses PROBE_TIMEOUT_MS at 15000ms) -- this site's genuinely different
|
||||
* pre-existing bound is preserved rather than equalized without bench data.
|
||||
*/
|
||||
const MKFIFO_PROBE_TIMEOUT_MS = 5000;
|
||||
|
||||
// ─── Shared fixtures ────────────────────────────────────────────────────────────
|
||||
|
||||
function mkTmpProject() {
|
||||
@@ -188,7 +196,7 @@ describe('quick-batch: task-list parsing', () => {
|
||||
try {
|
||||
const fifoPath = path.join(dir, '.planning', 'a-fifo');
|
||||
try {
|
||||
execFileSync('mkfifo', [fifoPath], { stdio: 'ignore', timeout: 5000 });
|
||||
execFileSync('mkfifo', [fifoPath], { stdio: 'ignore', timeout: MKFIFO_PROBE_TIMEOUT_MS });
|
||||
} catch (err) {
|
||||
// Documented skip: mkfifo unavailable on this CI platform (e.g. Windows).
|
||||
t.skip(`mkfifo unavailable: ${err instanceof Error ? err.message : String(err)}`);
|
||||
|
||||
Reference in New Issue
Block a user