test(#4518): migrate loop/hook-point e2e batch to named timeout constants
Batch 7 of 17 in the ad hoc timeout literal migration (epic #4445). Replaces every bare numeric timeout/timeoutMs object-literal property in tests/loop-render-hooks.test.cjs, tests/loop-walk.qa.test.cjs, tests/loop-hooks-empty-points-e2e.test.cjs, tests/loop-hooks-ship-pre-e2e.test.cjs, tests/loop-hooks-verify-post-e2e.test.cjs, tests/check-gap-analysis-plan-post-e2e.test.cjs, tests/check-tdd-review-checkpoint-e2e.test.cjs, tests/execute-wave-post-gate-pipeline-e2e.test.cjs, tests/plan-pre-hook-e2e.test.cjs, and tests/qa/tdd-walk.cjs with a named constant, per eslint-rules/no-adhoc-timeout-literal.cjs. Removes the 10 files from the rule's allowlist. Promotes a new shared class norm to tests/helpers/timeouts.cjs, LOOP_HOOK_POINT_CLI_TIMEOUT_MS: 7 files independently arrived at the same value for a single gsd-tools.cjs CLI subcommand invocation with no confirmed subprocess fan-out. Reuses the existing PROBE_TIMEOUT_MS for loop-render-hooks.test.cjs's 11 sites (same class, exact value match). Adds 4 file-local constants for values that share a class with the new norm or an existing one but diverge in pre-existing value, or that numerically coincide with an unrelated existing constant without matching its actual operation. Isolated Standards-axis review caught that the new shared constant's doc comment exhaustively enumerated 3 verb families while a 7th genuine site (an `init new-project` invocation) also correctly belonged to the class; fixed by rewording the comment to state the class definition (call shape) first and list all 4 representative verbs, explicitly illustrative rather than exhaustive. No value changed, no site's classification changed. No src/bin file touched, no numeric value changed anywhere. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,16 @@ const { cleanup } = require('./helpers.cjs');
|
||||
|
||||
const GSD_TOOLS = path.join(__dirname, '..', 'gsd-core', 'bin', 'gsd-tools.cjs');
|
||||
|
||||
/**
|
||||
* Bounds a single gsd-tools.cjs CLI subcommand invocation — the same call
|
||||
* shape as the shared LOOP_HOOK_POINT_CLI_TIMEOUT_MS constant in
|
||||
* tests/helpers/timeouts.cjs. This file's pre-existing bound (30000ms) is
|
||||
* half that shared norm's value (60000ms) — kept as its own file-local
|
||||
* constant rather than folded into the shared one, since no fresh bench
|
||||
* data justifies raising this file's bound to match.
|
||||
*/
|
||||
const PLAN_PRE_HOOK_CLI_TIMEOUT_MS = 30000;
|
||||
|
||||
// ─── Subprocess helper (isolated env, no ambient GSD_ vars) ───────────────────
|
||||
|
||||
const CLEAN_ENV = {
|
||||
@@ -65,7 +75,7 @@ function runTools(args, cwd, envOverrides = {}) {
|
||||
{
|
||||
cwd: cwd || process.cwd(),
|
||||
encoding: 'utf8',
|
||||
timeout: 30000,
|
||||
timeout: PLAN_PRE_HOOK_CLI_TIMEOUT_MS,
|
||||
env: { ...process.env, ...CLEAN_ENV, ...envOverrides },
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user