test(#4521): migrate capability subsystem batch to named timeout constants (#4627)

Batch 10 of the ad hoc timeout literal migration (epic #4445). Replaces
every bare numeric timeout/timeoutMs object-literal property in
tests/adr857-core-without-capabilities.test.cjs, tests/capability-cli.test.cjs,
tests/capability-probe-fallback.test.cjs, tests/capability-state.test.cjs,
tests/capability-trust.test.cjs,
tests/capability-validator-task-content-resolver.test.cjs, and
tests/capability-writer.test.cjs with a named constant, per
eslint-rules/no-adhoc-timeout-literal.cjs. Removes these 7 files from the
rule's allowlist.

Reuses the existing PROBE_TIMEOUT_MS constant at 8 sites across 3 files.
Adds 7 new file-local constants (no promotion to the shared helper needed
this batch -- every new class is confined to exactly one file, below the
two-file promotion bar): GSD_TOOLS_CLI_TIMEOUT_MS,
FRAGMENT_PROBE_SNIPPET_TIMEOUT_MS, INSTALLED_RUNTIME_CLI_TIMEOUT_MS,
FIXTURE_MCP_SERVER_TIMEOUT_VALUE, TASK_RESOLVER_FIXTURE_TIMEOUT_MS,
TASK_RESOLVER_TIMEOUT_CEILING_MS, and TASK_RESOLVER_TIMEOUT_CEILING_PLUS_ONE_MS
(the last two forming a boundary-coverage limit/limit+1 pair). 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:
Tom Boucher
2026-09-11 09:55:55 -04:00
committed by GitHub
parent 7249bdddac
commit aad96e0b5f
8 changed files with 97 additions and 25 deletions

View File

@@ -20,6 +20,14 @@ function tmpDir() {
return fs.mkdtempSync(path.join(os.tmpdir(), 'cap-trust-test-'));
}
/**
* NOT a subprocess spawn timeout. Fixture DATA inside a synthetic MCP
* server config object passed to trust.signatureForManifest() -- proves
* key-reordering doesn't change a config's signature. Never passed into a
* real spawnSync/execFileSync options object.
*/
const FIXTURE_MCP_SERVER_TIMEOUT_VALUE = 30;
// ---------------------------------------------------------------------------
// discloseExecutableSurfaces
// ---------------------------------------------------------------------------
@@ -491,8 +499,8 @@ test('finding-5: reordering keys WITHIN the full mcp config does NOT change the
// revert-fails: if the full config were folded in via a NON-stable JSON (insertion-order
// dependent), a mere key reorder would change the signature and this strictEqual would FAIL. The
// full-config hash must use the stable (recursively key-sorted) encoding.
const a = { id: 'x', mcpServers: { srv: { command: 'node', envFile: '.env', timeout: 30, extra: { z: 1, a: 2 } } } };
const b = { id: 'x', mcpServers: { srv: { extra: { a: 2, z: 1 }, timeout: 30, envFile: '.env', command: 'node' } } };
const a = { id: 'x', mcpServers: { srv: { command: 'node', envFile: '.env', timeout: FIXTURE_MCP_SERVER_TIMEOUT_VALUE, extra: { z: 1, a: 2 } } } };
const b = { id: 'x', mcpServers: { srv: { extra: { a: 2, z: 1 }, timeout: FIXTURE_MCP_SERVER_TIMEOUT_VALUE, envFile: '.env', command: 'node' } } };
assert.strictEqual(
trust.signatureForManifest(a),
trust.signatureForManifest(b),