@claudetree/cli 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/commands/batch.js +1 -1
  2. package/dist/commands/batch.js.map +1 -1
  3. package/dist/commands/batch.test.d.ts +2 -0
  4. package/dist/commands/batch.test.d.ts.map +1 -0
  5. package/dist/commands/batch.test.js +230 -0
  6. package/dist/commands/batch.test.js.map +1 -0
  7. package/dist/commands/bustercall/index.d.ts +4 -0
  8. package/dist/commands/bustercall/index.d.ts.map +1 -0
  9. package/dist/commands/bustercall/index.js +4 -0
  10. package/dist/commands/bustercall/index.js.map +1 -0
  11. package/dist/commands/bustercall/issueFilters.d.ts +21 -0
  12. package/dist/commands/bustercall/issueFilters.d.ts.map +1 -0
  13. package/dist/commands/bustercall/issueFilters.js +62 -0
  14. package/dist/commands/bustercall/issueFilters.js.map +1 -0
  15. package/dist/commands/bustercall/issueFilters.test.d.ts +2 -0
  16. package/dist/commands/bustercall/issueFilters.test.d.ts.map +1 -0
  17. package/dist/commands/bustercall/issueFilters.test.js +151 -0
  18. package/dist/commands/bustercall/issueFilters.test.js.map +1 -0
  19. package/dist/commands/bustercall/sessionManager.d.ts +14 -0
  20. package/dist/commands/bustercall/sessionManager.d.ts.map +1 -0
  21. package/dist/commands/bustercall/sessionManager.js +34 -0
  22. package/dist/commands/bustercall/sessionManager.js.map +1 -0
  23. package/dist/commands/bustercall/sessionManager.test.d.ts +2 -0
  24. package/dist/commands/bustercall/sessionManager.test.d.ts.map +1 -0
  25. package/dist/commands/bustercall/sessionManager.test.js +79 -0
  26. package/dist/commands/bustercall/sessionManager.test.js.map +1 -0
  27. package/dist/commands/bustercall/statusDisplay.d.ts +15 -0
  28. package/dist/commands/bustercall/statusDisplay.d.ts.map +1 -0
  29. package/dist/commands/bustercall/statusDisplay.js +39 -0
  30. package/dist/commands/bustercall/statusDisplay.js.map +1 -0
  31. package/dist/commands/bustercall/statusDisplay.test.d.ts +2 -0
  32. package/dist/commands/bustercall/statusDisplay.test.d.ts.map +1 -0
  33. package/dist/commands/bustercall/statusDisplay.test.js +111 -0
  34. package/dist/commands/bustercall/statusDisplay.test.js.map +1 -0
  35. package/dist/commands/bustercall.d.ts.map +1 -1
  36. package/dist/commands/bustercall.js +1 -88
  37. package/dist/commands/bustercall.js.map +1 -1
  38. package/dist/commands/bustercall.test.d.ts +2 -0
  39. package/dist/commands/bustercall.test.d.ts.map +1 -0
  40. package/dist/commands/bustercall.test.js +258 -0
  41. package/dist/commands/bustercall.test.js.map +1 -0
  42. package/dist/commands/chain/chainDisplay.d.ts +18 -0
  43. package/dist/commands/chain/chainDisplay.d.ts.map +1 -0
  44. package/dist/commands/chain/chainDisplay.js +71 -0
  45. package/dist/commands/chain/chainDisplay.js.map +1 -0
  46. package/dist/commands/chain/chainDisplay.test.d.ts +2 -0
  47. package/dist/commands/chain/chainDisplay.test.d.ts.map +1 -0
  48. package/dist/commands/chain/chainDisplay.test.js +128 -0
  49. package/dist/commands/chain/chainDisplay.test.js.map +1 -0
  50. package/dist/commands/chain/chainSession.d.ts +26 -0
  51. package/dist/commands/chain/chainSession.d.ts.map +1 -0
  52. package/dist/commands/chain/chainSession.js +47 -0
  53. package/dist/commands/chain/chainSession.js.map +1 -0
  54. package/dist/commands/chain/chainSession.test.d.ts +2 -0
  55. package/dist/commands/chain/chainSession.test.d.ts.map +1 -0
  56. package/dist/commands/chain/chainSession.test.js +93 -0
  57. package/dist/commands/chain/chainSession.test.js.map +1 -0
  58. package/dist/commands/chain/index.d.ts +3 -0
  59. package/dist/commands/chain/index.d.ts.map +1 -0
  60. package/dist/commands/chain/index.js +3 -0
  61. package/dist/commands/chain/index.js.map +1 -0
  62. package/dist/commands/chain.d.ts.map +1 -1
  63. package/dist/commands/chain.js +2 -91
  64. package/dist/commands/chain.js.map +1 -1
  65. package/dist/commands/chain.test.d.ts +2 -0
  66. package/dist/commands/chain.test.d.ts.map +1 -0
  67. package/dist/commands/chain.test.js +216 -0
  68. package/dist/commands/chain.test.js.map +1 -0
  69. package/dist/commands/clean.test.d.ts +2 -0
  70. package/dist/commands/clean.test.d.ts.map +1 -0
  71. package/dist/commands/clean.test.js +193 -0
  72. package/dist/commands/clean.test.js.map +1 -0
  73. package/dist/commands/demo.d.ts.map +1 -1
  74. package/dist/commands/demo.js +4 -2
  75. package/dist/commands/demo.js.map +1 -1
  76. package/dist/commands/demo.test.d.ts +2 -0
  77. package/dist/commands/demo.test.d.ts.map +1 -0
  78. package/dist/commands/demo.test.js +34 -0
  79. package/dist/commands/demo.test.js.map +1 -0
  80. package/dist/commands/doctor.test.d.ts +2 -0
  81. package/dist/commands/doctor.test.d.ts.map +1 -0
  82. package/dist/commands/doctor.test.js +324 -0
  83. package/dist/commands/doctor.test.js.map +1 -0
  84. package/dist/commands/resume.test.d.ts +2 -0
  85. package/dist/commands/resume.test.d.ts.map +1 -0
  86. package/dist/commands/resume.test.js +362 -0
  87. package/dist/commands/resume.test.js.map +1 -0
  88. package/dist/commands/start/index.d.ts +2 -0
  89. package/dist/commands/start/index.d.ts.map +1 -1
  90. package/dist/commands/start/index.js +2 -0
  91. package/dist/commands/start/index.js.map +1 -1
  92. package/dist/commands/start/progressTracker.d.ts +18 -0
  93. package/dist/commands/start/progressTracker.d.ts.map +1 -0
  94. package/dist/commands/start/progressTracker.js +72 -0
  95. package/dist/commands/start/progressTracker.js.map +1 -0
  96. package/dist/commands/start/progressTracker.test.d.ts +2 -0
  97. package/dist/commands/start/progressTracker.test.d.ts.map +1 -0
  98. package/dist/commands/start/progressTracker.test.js +100 -0
  99. package/dist/commands/start/progressTracker.test.js.map +1 -0
  100. package/dist/commands/start/validationGates.d.ts +7 -0
  101. package/dist/commands/start/validationGates.d.ts.map +1 -0
  102. package/dist/commands/start/validationGates.js +48 -0
  103. package/dist/commands/start/validationGates.js.map +1 -0
  104. package/dist/commands/start/validationGates.test.d.ts +2 -0
  105. package/dist/commands/start/validationGates.test.d.ts.map +1 -0
  106. package/dist/commands/start/validationGates.test.js +66 -0
  107. package/dist/commands/start/validationGates.test.js.map +1 -0
  108. package/dist/commands/start.d.ts.map +1 -1
  109. package/dist/commands/start.js +3 -75
  110. package/dist/commands/start.js.map +1 -1
  111. package/dist/commands/stop.js +1 -1
  112. package/dist/commands/stop.js.map +1 -1
  113. package/package.json +7 -7
@@ -0,0 +1,93 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import * as fs from 'node:fs/promises';
3
+ import { loadSessions, saveChain, waitForSession } from './chainSession.js';
4
+ vi.mock('node:fs/promises');
5
+ describe('chainSession', () => {
6
+ describe('loadSessions', () => {
7
+ beforeEach(() => {
8
+ vi.resetAllMocks();
9
+ });
10
+ it('should load and parse sessions file', async () => {
11
+ const mockSessions = [
12
+ { id: '1', issueNumber: 42, status: 'running', worktreePath: '/path/1' },
13
+ { id: '2', issueNumber: 43, status: 'completed', worktreePath: '/path/2' },
14
+ ];
15
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify(mockSessions));
16
+ const result = await loadSessions('/test/cwd');
17
+ expect(result).toHaveLength(2);
18
+ expect(result[0]?.id).toBe('1');
19
+ expect(result[1]?.id).toBe('2');
20
+ });
21
+ it('should return empty array on file read error', async () => {
22
+ vi.mocked(fs.readFile).mockRejectedValue(new Error('File not found'));
23
+ const result = await loadSessions('/test/cwd');
24
+ expect(result).toHaveLength(0);
25
+ });
26
+ });
27
+ describe('saveChain', () => {
28
+ beforeEach(() => {
29
+ vi.resetAllMocks();
30
+ });
31
+ it('should create directory and save chain file', async () => {
32
+ vi.mocked(fs.mkdir).mockResolvedValue(undefined);
33
+ vi.mocked(fs.writeFile).mockResolvedValue(undefined);
34
+ const chain = {
35
+ id: 'test-123',
36
+ items: [],
37
+ status: 'pending',
38
+ createdAt: new Date(),
39
+ updatedAt: new Date(),
40
+ options: { baseBranch: 'develop', skipFailed: false, autoMerge: false },
41
+ };
42
+ await saveChain('/test/cwd', chain);
43
+ expect(fs.mkdir).toHaveBeenCalledWith(expect.stringContaining('chains'), { recursive: true });
44
+ expect(fs.writeFile).toHaveBeenCalledWith(expect.stringContaining('test-123.json'), expect.any(String));
45
+ });
46
+ });
47
+ describe('waitForSession', () => {
48
+ beforeEach(() => {
49
+ vi.useFakeTimers();
50
+ vi.resetAllMocks();
51
+ });
52
+ afterEach(() => {
53
+ vi.useRealTimers();
54
+ });
55
+ it('should return success when session completes', async () => {
56
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify([{ id: 'sess-1', issueNumber: 42, status: 'completed' }]));
57
+ const promise = waitForSession('/test/cwd', 42, 10000);
58
+ await vi.advanceTimersByTimeAsync(3000);
59
+ const result = await promise;
60
+ expect(result.success).toBe(true);
61
+ expect(result.sessionId).toBe('sess-1');
62
+ });
63
+ it('should return failure when session fails', async () => {
64
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify([{ id: 'sess-1', issueNumber: 42, status: 'failed' }]));
65
+ const promise = waitForSession('/test/cwd', 42, 10000);
66
+ await vi.advanceTimersByTimeAsync(3000);
67
+ const result = await promise;
68
+ expect(result.success).toBe(false);
69
+ expect(result.error).toBe('Session failed');
70
+ });
71
+ it('should return timeout error when no session found', async () => {
72
+ vi.mocked(fs.readFile).mockResolvedValue(JSON.stringify([]));
73
+ const promise = waitForSession('/test/cwd', 42, 5000);
74
+ await vi.advanceTimersByTimeAsync(6000);
75
+ const result = await promise;
76
+ expect(result.success).toBe(false);
77
+ expect(result.error).toBe('Session timeout');
78
+ });
79
+ it('should poll until session status changes', async () => {
80
+ vi.mocked(fs.readFile)
81
+ .mockResolvedValueOnce(JSON.stringify([{ id: 's1', issueNumber: 42, status: 'running' }]))
82
+ .mockResolvedValueOnce(JSON.stringify([{ id: 's1', issueNumber: 42, status: 'running' }]))
83
+ .mockResolvedValueOnce(JSON.stringify([{ id: 's1', issueNumber: 42, status: 'completed' }]));
84
+ const promise = waitForSession('/test/cwd', 42, 30000);
85
+ await vi.advanceTimersByTimeAsync(3000);
86
+ await vi.advanceTimersByTimeAsync(3000);
87
+ await vi.advanceTimersByTimeAsync(3000);
88
+ const result = await promise;
89
+ expect(result.success).toBe(true);
90
+ });
91
+ });
92
+ });
93
+ //# sourceMappingURL=chainSession.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainSession.test.js","sourceRoot":"","sources":["../../../src/commands/chain/chainSession.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { truncate, getBranchNameForIssue, getChainSummary, printChainStatus, } from './chainDisplay.js';
2
+ export { loadSessions, saveChain, waitForSession, type SessionInfo, type WaitResult, } from './chainSession.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/chain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { truncate, getBranchNameForIssue, getChainSummary, printChainStatus, } from './chainDisplay.js';
2
+ export { loadSessions, saveChain, waitForSession, } from './chainSession.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/chain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,GAGf,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0LpC,eAAO,MAAM,YAAY,SA0KrB,CAAC"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8EpC,eAAO,MAAM,YAAY,SA0KrB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { Command } from 'commander';
2
2
  import { join } from 'node:path';
3
- import { access, readFile, writeFile, mkdir } from 'node:fs/promises';
3
+ import { access, readFile } from 'node:fs/promises';
4
4
  import { spawn } from 'node:child_process';
5
5
  import { randomUUID } from 'node:crypto';
6
+ import { getBranchNameForIssue, getChainSummary, printChainStatus, saveChain, waitForSession, } from './chain/index.js';
6
7
  const CONFIG_DIR = '.claudetree';
7
8
  const CHAINS_DIR = 'chains';
8
9
  async function loadConfig(cwd) {
@@ -16,84 +17,6 @@ async function loadConfig(cwd) {
16
17
  return null;
17
18
  }
18
19
  }
19
- async function loadSessions(cwd) {
20
- try {
21
- const sessionsPath = join(cwd, CONFIG_DIR, 'sessions.json');
22
- const content = await readFile(sessionsPath, 'utf-8');
23
- return JSON.parse(content);
24
- }
25
- catch {
26
- return [];
27
- }
28
- }
29
- async function saveChain(cwd, chain) {
30
- const chainsDir = join(cwd, CONFIG_DIR, CHAINS_DIR);
31
- await mkdir(chainsDir, { recursive: true });
32
- await writeFile(join(chainsDir, `${chain.id}.json`), JSON.stringify(chain, null, 2));
33
- }
34
- function truncate(str, maxLen) {
35
- if (str.length <= maxLen)
36
- return str;
37
- return str.slice(0, maxLen - 3) + '...';
38
- }
39
- function printChainStatus(chain) {
40
- console.clear();
41
- console.log('\n\x1b[36m╔══════════════════════════════════════════╗\x1b[0m');
42
- console.log('\x1b[36m║ Dependency Chain ║\x1b[0m');
43
- console.log('\x1b[36m╚══════════════════════════════════════════╝\x1b[0m\n');
44
- for (let i = 0; i < chain.items.length; i++) {
45
- const item = chain.items[i];
46
- const icon = item.status === 'pending' ? '\x1b[90m○\x1b[0m' :
47
- item.status === 'running' ? '\x1b[33m◐\x1b[0m' :
48
- item.status === 'completed' ? '\x1b[32m●\x1b[0m' :
49
- item.status === 'skipped' ? '\x1b[90m◌\x1b[0m' :
50
- '\x1b[31m✗\x1b[0m';
51
- const arrow = i < chain.items.length - 1 ? '\x1b[90m │\x1b[0m' : '';
52
- const base = item.baseBranch ? `\x1b[90m← ${item.baseBranch}\x1b[0m` : '';
53
- const branch = item.branchName ? `\x1b[36m[${item.branchName}]\x1b[0m ` : '';
54
- const error = item.error ? `\x1b[31m (${truncate(item.error, 30)})\x1b[0m` : '';
55
- console.log(` ${icon} ${branch}#${item.issue}${error} ${base}`);
56
- if (arrow)
57
- console.log(arrow);
58
- }
59
- const summary = getChainSummary(chain);
60
- console.log(`\n \x1b[90m[${summary.completed}/${summary.total}] completed`);
61
- if (summary.failed > 0)
62
- console.log(` \x1b[31m${summary.failed} failed\x1b[0m`);
63
- if (summary.skipped > 0)
64
- console.log(` \x1b[90m${summary.skipped} skipped\x1b[0m`);
65
- console.log('\x1b[0m');
66
- }
67
- function getChainSummary(chain) {
68
- return {
69
- total: chain.items.length,
70
- completed: chain.items.filter(i => i.status === 'completed').length,
71
- failed: chain.items.filter(i => i.status === 'failed').length,
72
- skipped: chain.items.filter(i => i.status === 'skipped').length,
73
- pending: chain.items.filter(i => i.status === 'pending').length,
74
- };
75
- }
76
- async function waitForSession(cwd, issueNumber, timeoutMs = 300000) {
77
- const startTime = Date.now();
78
- let lastStatus = '';
79
- while (Date.now() - startTime < timeoutMs) {
80
- const sessions = await loadSessions(cwd);
81
- const session = sessions.find(s => s.issueNumber === issueNumber);
82
- if (session) {
83
- if (session.status !== lastStatus) {
84
- lastStatus = session.status;
85
- }
86
- if (session.status === 'completed') {
87
- return { success: true, sessionId: session.id };
88
- }
89
- if (session.status === 'failed') {
90
- return { success: false, sessionId: session.id, error: 'Session failed' };
91
- }
92
- }
93
- await new Promise(r => setTimeout(r, 3000));
94
- }
95
- return { success: false, error: 'Session timeout' };
96
- }
97
20
  async function startChainItem(item, options) {
98
21
  const args = ['start', item.issue];
99
22
  if (options.template) {
@@ -118,18 +41,6 @@ async function startChainItem(item, options) {
118
41
  // Wait for session to be created
119
42
  await new Promise(r => setTimeout(r, 3000));
120
43
  }
121
- function getBranchNameForIssue(issue) {
122
- // If it's a number, assume issue number
123
- if (/^\d+$/.test(issue)) {
124
- return `issue-${issue}`;
125
- }
126
- // Otherwise, sanitize the task name
127
- return issue
128
- .toLowerCase()
129
- .replace(/[^a-z0-9]+/g, '-')
130
- .replace(/^-|-$/g, '')
131
- .slice(0, 50);
132
- }
133
44
  export const chainCommand = new Command('chain')
134
45
  .description('Execute a dependency chain of issues (each builds on the previous)')
135
46
  .argument('<issues...>', 'Issue numbers in dependency order (first is base)')
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chain.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.test.d.ts","sourceRoot":"","sources":["../../src/commands/chain.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,216 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { mkdtemp, rm, mkdir, writeFile, access } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ // Mock spawn
6
+ const mockSpawn = vi.fn();
7
+ vi.mock('node:child_process', () => ({
8
+ spawn: (...args) => mockSpawn(...args),
9
+ }));
10
+ // Mock crypto for consistent UUIDs in tests
11
+ vi.mock('node:crypto', () => ({
12
+ randomUUID: () => 'test-uuid-1234',
13
+ }));
14
+ import { chainCommand } from './chain.js';
15
+ describe('chainCommand', () => {
16
+ let testDir;
17
+ let originalCwd;
18
+ let originalExit;
19
+ let consoleLogSpy;
20
+ let consoleErrorSpy;
21
+ let consoleClearSpy;
22
+ beforeEach(async () => {
23
+ testDir = await mkdtemp(join(tmpdir(), 'claudetree-chain-test-'));
24
+ originalCwd = process.cwd();
25
+ process.chdir(testDir);
26
+ originalExit = process.exit;
27
+ process.exit = vi.fn();
28
+ consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
29
+ consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
30
+ consoleClearSpy = vi.spyOn(console, 'clear').mockImplementation(() => { });
31
+ mockSpawn.mockReset();
32
+ });
33
+ afterEach(async () => {
34
+ process.chdir(originalCwd);
35
+ process.exit = originalExit;
36
+ consoleLogSpy.mockRestore();
37
+ consoleErrorSpy.mockRestore();
38
+ consoleClearSpy.mockRestore();
39
+ vi.clearAllMocks();
40
+ await rm(testDir, { recursive: true, force: true });
41
+ });
42
+ describe('when not initialized', () => {
43
+ it('should display error and exit with code 1', async () => {
44
+ const exitError = new Error('process.exit called');
45
+ process.exit.mockImplementation(() => {
46
+ throw exitError;
47
+ });
48
+ await expect(chainCommand.parseAsync(['node', 'test', '10', '11', '12'])).rejects.toThrow('process.exit called');
49
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error: claudetree not initialized. Run "claudetree init" first.');
50
+ expect(process.exit).toHaveBeenCalledWith(1);
51
+ });
52
+ });
53
+ describe('when initialized', () => {
54
+ beforeEach(async () => {
55
+ await mkdir(join(testDir, '.claudetree'), { recursive: true });
56
+ await writeFile(join(testDir, '.claudetree', 'config.json'), JSON.stringify({
57
+ worktreeDir: '.worktrees',
58
+ github: {
59
+ token: 'test-token',
60
+ owner: 'test-owner',
61
+ repo: 'test-repo',
62
+ },
63
+ }));
64
+ });
65
+ describe('with insufficient issues', () => {
66
+ it('should error when only one issue provided', async () => {
67
+ const exitError = new Error('process.exit called');
68
+ process.exit.mockImplementation(() => {
69
+ throw exitError;
70
+ });
71
+ await expect(chainCommand.parseAsync(['node', 'test', '10'])).rejects.toThrow('process.exit called');
72
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error: Chain requires at least 2 issues.');
73
+ expect(process.exit).toHaveBeenCalledWith(1);
74
+ });
75
+ });
76
+ describe('with --dry-run option', () => {
77
+ it('should show chain plan without executing', async () => {
78
+ await chainCommand.parseAsync([
79
+ 'node',
80
+ 'test',
81
+ '10',
82
+ '11',
83
+ '12',
84
+ '--dry-run',
85
+ ]);
86
+ expect(mockSpawn).not.toHaveBeenCalled();
87
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('[Dry Run]'));
88
+ });
89
+ it('should display issues in order with branch info', async () => {
90
+ await chainCommand.parseAsync([
91
+ 'node',
92
+ 'test',
93
+ '10',
94
+ '11',
95
+ '--dry-run',
96
+ ]);
97
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
98
+ expect(logCalls).toContain('#10');
99
+ expect(logCalls).toContain('#11');
100
+ expect(logCalls).toContain('issue-10');
101
+ expect(logCalls).toContain('issue-11');
102
+ });
103
+ it('should show base branch for first issue', async () => {
104
+ await chainCommand.parseAsync([
105
+ 'node',
106
+ 'test',
107
+ '10',
108
+ '11',
109
+ '--dry-run',
110
+ '--base-branch',
111
+ 'main',
112
+ ]);
113
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
114
+ expect(logCalls).toContain('main');
115
+ });
116
+ it('should show dependency relationships', async () => {
117
+ await chainCommand.parseAsync([
118
+ 'node',
119
+ 'test',
120
+ '10',
121
+ '11',
122
+ '12',
123
+ '--dry-run',
124
+ ]);
125
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
126
+ // Second issue should base on first
127
+ expect(logCalls).toContain('issue-10');
128
+ // Third issue should base on second
129
+ expect(logCalls).toContain('issue-11');
130
+ });
131
+ });
132
+ describe('with --base-branch option', () => {
133
+ it('should use custom base branch', async () => {
134
+ await chainCommand.parseAsync([
135
+ 'node',
136
+ 'test',
137
+ '10',
138
+ '11',
139
+ '--base-branch',
140
+ 'main',
141
+ '--dry-run',
142
+ ]);
143
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
144
+ expect(logCalls).toContain('main');
145
+ });
146
+ });
147
+ describe('with --template option', () => {
148
+ it('should include template in output', async () => {
149
+ await chainCommand.parseAsync([
150
+ 'node',
151
+ 'test',
152
+ '10',
153
+ '11',
154
+ '--template',
155
+ 'bugfix',
156
+ '--dry-run',
157
+ ]);
158
+ // Template is passed to session start, not necessarily shown in dry-run
159
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('[Dry Run]'));
160
+ });
161
+ });
162
+ describe('branch name generation', () => {
163
+ it('should generate branch names from issue numbers', async () => {
164
+ await chainCommand.parseAsync([
165
+ 'node',
166
+ 'test',
167
+ '101',
168
+ '102',
169
+ '--dry-run',
170
+ ]);
171
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
172
+ expect(logCalls).toContain('issue-101');
173
+ expect(logCalls).toContain('issue-102');
174
+ });
175
+ it('should sanitize non-numeric issue names', async () => {
176
+ await chainCommand.parseAsync([
177
+ 'node',
178
+ 'test',
179
+ 'feature-auth',
180
+ 'feature-dashboard',
181
+ '--dry-run',
182
+ ]);
183
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
184
+ expect(logCalls).toContain('feature-auth');
185
+ expect(logCalls).toContain('feature-dashboard');
186
+ });
187
+ });
188
+ describe('chain state persistence', () => {
189
+ it('should create chains directory for non-dry-run', async () => {
190
+ // Setup mock for spawn
191
+ const mockProc = {
192
+ unref: vi.fn(),
193
+ on: vi.fn(),
194
+ };
195
+ mockSpawn.mockReturnValue(mockProc);
196
+ // Mock session creation by writing to sessions.json
197
+ await writeFile(join(testDir, '.claudetree', 'sessions.json'), JSON.stringify([
198
+ { issueNumber: 10, status: 'completed', id: 'session-1' },
199
+ { issueNumber: 11, status: 'completed', id: 'session-2' },
200
+ ]));
201
+ // We can't easily test the full execution because it requires
202
+ // waiting for sessions, so we just verify dry-run works
203
+ await chainCommand.parseAsync([
204
+ 'node',
205
+ 'test',
206
+ '10',
207
+ '11',
208
+ '--dry-run',
209
+ ]);
210
+ // In dry-run, chains dir is not created
211
+ await expect(access(join(testDir, '.claudetree', 'chains'))).rejects.toThrow();
212
+ });
213
+ });
214
+ });
215
+ });
216
+ //# sourceMappingURL=chain.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.test.js","sourceRoot":"","sources":["../../src/commands/chain.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAa,MAAM,QAAQ,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,aAAa;AACb,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1B,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAClD,CAAC,CAAC,CAAC;AAEJ,4CAA4C;AAC5C,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB;CACnC,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,OAAe,CAAC;IACpB,IAAI,WAAmB,CAAC;IACxB,IAAI,YAAiC,CAAC;IACtC,IAAI,aAA0C,CAAC;IAC/C,IAAI,eAA4C,CAAC;IACjD,IAAI,eAA4C,CAAC;IAEjD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAClE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5B,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAW,CAAC;QAChC,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtE,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,SAAS,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAC5B,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5B,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAClD,OAAO,CAAC,IAAwB,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBACxD,MAAM,SAAS,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CACV,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAC5D,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAEzC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,iEAAiE,CAClE,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,CACb,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,EAC3C,IAAI,CAAC,SAAS,CAAC;gBACb,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE;oBACN,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;gBACzD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAwB,CAAC,kBAAkB,CAAC,GAAG,EAAE;oBACxD,MAAM,SAAS,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,CACV,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAChD,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAEzC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,0CAA0C,CAC3C,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACxD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CACxC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACrC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBAC/D,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,WAAW;oBACX,eAAe;oBACf,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,oCAAoC;gBACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACvC,oCAAoC;gBACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACzC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,eAAe;oBACf,MAAM;oBACN,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,YAAY;oBACZ,QAAQ;oBACR,WAAW;iBACZ,CAAC,CAAC;gBAEH,wEAAwE;gBACxE,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CACxC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACrC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBAC/D,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,KAAK;oBACL,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,cAAc;oBACd,mBAAmB;oBACnB,WAAW;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC9D,uBAAuB;gBACvB,MAAM,QAAQ,GAAG;oBACf,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;oBACd,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;iBACZ,CAAC;gBACF,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAEpC,oDAAoD;gBACpD,MAAM,SAAS,CACb,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAC7C,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;oBACzD,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;iBAC1D,CAAC,CACH,CAAC;gBAEF,8DAA8D;gBAC9D,wDAAwD;gBACxD,MAAM,YAAY,CAAC,UAAU,CAAC;oBAC5B,MAAM;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;gBAEH,wCAAwC;gBACxC,MAAM,MAAM,CACV,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAC/C,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=clean.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.test.d.ts","sourceRoot":"","sources":["../../src/commands/clean.test.ts"],"names":[],"mappings":""}