test(#2688): add review.models.claude tests for per-runtime review model config (#2748)

Adds two tests to review-model-config.test.cjs:
- isValidConfigKey accepts review.models.claude (schema validation)
- round-trip: config-set then config-get for review.models.claude

The dynamic key pattern (^review\.models\.[a-zA-Z0-9_-]+$), the workflow
model-read logic in review.md, and the CONFIGURATION.md docs were already
in place. Only the claude-specific test coverage was missing.

Closes #2688

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-04-26 13:33:45 -04:00
committed by GitHub
parent d5cd64dde5
commit bf73cbe1a4

View File

@@ -44,6 +44,36 @@ describe('review.models.<cli> config key', () => {
assert.ok(result.success, `config-set should succeed for review.models.codex: ${result.error}`);
});
test('isValidConfigKey accepts review.models.claude (#2688)', () => {
const result = runGsdTools(
['config-set', 'review.models.claude', 'claude-opus-4-6'],
tmpDir,
{ HOME: tmpDir, USERPROFILE: tmpDir }
);
assert.ok(result.success, `config-set should succeed for review.models.claude: ${result.error}`);
});
test('round-trip: review.models.claude config-set then config-get (#2688)', () => {
const setResult = runGsdTools(
['config-set', 'review.models.claude', 'claude-opus-4-6'],
tmpDir,
{ HOME: tmpDir, USERPROFILE: tmpDir }
);
assert.ok(setResult.success, `config-set failed: ${setResult.error}`);
const getResult = runGsdTools(
['config-get', 'review.models.claude', '--raw'],
tmpDir,
{ HOME: tmpDir, USERPROFILE: tmpDir }
);
assert.ok(getResult.success, `config-get failed: ${getResult.error}`);
assert.strictEqual(
getResult.output,
'claude-opus-4-6',
'config-get should return the model ID set via config-set'
);
});
test('review.model is rejected and suggests review.models.<cli-name>', () => {
// The suggestion path goes through validateKnownConfigKeyPath, which is
// called before isValidConfigKey in cmdConfigSet.