test(config): add config-get/set roundtrip and cross-workflow structural tests for use_worktrees
Add comprehensive test coverage for the workflow.use_worktrees config toggle: - config-get returns false after setting to false (roundtrip verification) - config-get errors with "Key not found" when not set (validates workflow fallback behavior where `|| echo "true"` provides the default) - config-get returns true after setting to true - Toggle back and forth works correctly - Structural tests verify USE_WORKTREES is wired into quick.md, diagnose-issues.md, execute-plan.md, planning-config.md, and config.cjs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -775,3 +775,58 @@ describe('config-set workflow.skip_discuss', () => {
|
||||
assert.strictEqual(output, true);
|
||||
});
|
||||
});
|
||||
|
||||
// ─── config-set/config-get workflow.use_worktrees ────────────────────────────
|
||||
|
||||
describe('config-set/config-get workflow.use_worktrees', () => {
|
||||
let tmpDir;
|
||||
|
||||
beforeEach(() => {
|
||||
tmpDir = createTempProject();
|
||||
runGsdTools('config-ensure-section', tmpDir, { HOME: tmpDir, USERPROFILE: tmpDir });
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cleanup(tmpDir);
|
||||
});
|
||||
|
||||
test('config-get workflow.use_worktrees returns false after setting to false', () => {
|
||||
runGsdTools('config-set workflow.use_worktrees false', tmpDir);
|
||||
const result = runGsdTools('config-get workflow.use_worktrees', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output, false);
|
||||
});
|
||||
|
||||
test('config-get workflow.use_worktrees errors when not set (default config)', () => {
|
||||
// config-ensure-section does NOT include use_worktrees in hardcoded defaults,
|
||||
// so config-get should error with "Key not found". This is the expected behavior
|
||||
// that workflows rely on: the shell fallback `|| echo "true"` provides the default.
|
||||
const result = runGsdTools('config-get workflow.use_worktrees', tmpDir);
|
||||
assert.strictEqual(result.success, false);
|
||||
assert.ok(
|
||||
result.error.includes('Key not found'),
|
||||
`Expected "Key not found" in error: ${result.error}`
|
||||
);
|
||||
});
|
||||
|
||||
test('config-get workflow.use_worktrees returns true after setting to true', () => {
|
||||
runGsdTools('config-set workflow.use_worktrees true', tmpDir);
|
||||
const result = runGsdTools('config-get workflow.use_worktrees', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output, true);
|
||||
});
|
||||
|
||||
test('use_worktrees can be toggled back and forth', () => {
|
||||
runGsdTools('config-set workflow.use_worktrees false', tmpDir);
|
||||
runGsdTools('config-set workflow.use_worktrees true', tmpDir);
|
||||
const result = runGsdTools('config-get workflow.use_worktrees', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output, true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user