import { test, describe } from 'node:test'; import assert from 'node:assert'; import { loadConfig } from '../utils/config.js'; describe('Configuration', () => { test('loadConfig should return default configuration', async () => { const config = await loadConfig(); assert.strictEqual(typeof config, 'object'); assert.strictEqual(config.worktreeLocation, '../'); assert.strictEqual(config.projectName, null); assert.strictEqual(typeof config.quickCommands, 'object'); assert.strictEqual(typeof config.autoStart, 'object'); assert.strictEqual(config.autoStart.claudeCode, true); }); test('loadConfig should have expected quick commands', async () => { const config = await loadConfig(); assert.strictEqual(config.quickCommands['test'], 'npm test'); assert.strictEqual(config.quickCommands['lint'], 'npm run lint'); assert.strictEqual(config.quickCommands['build'], 'npm run build'); assert.strictEqual(config.quickCommands['dev'], 'npm run dev'); }); test('configuration should match expected type structure', async () => { const config = await loadConfig(); // Verify the structure matches our Config type const expectedKeys = ['worktreeLocation', 'projectName', 'quickCommands', 'autoStart']; const actualKeys = Object.keys(config).sort(); assert.deepStrictEqual(actualKeys, expectedKeys.sort()); // Verify quickCommands structure assert.ok(typeof config.quickCommands === 'object'); assert.ok(config.quickCommands !== null); // Verify autoStart structure assert.ok(typeof config.autoStart === 'object'); assert.ok(config.autoStart !== null); assert.ok('claudeCode' in config.autoStart); }); });