cadr-cli 2.0.1 → 2.0.2

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 (52) hide show
  1. package/dist/analysis/analysis.orchestrator.test.d.ts +2 -0
  2. package/dist/analysis/analysis.orchestrator.test.d.ts.map +1 -0
  3. package/dist/analysis/analysis.orchestrator.test.js +177 -0
  4. package/dist/analysis/analysis.orchestrator.test.js.map +1 -0
  5. package/dist/analysis/strategies/git-strategy.test.d.ts +2 -0
  6. package/dist/analysis/strategies/git-strategy.test.d.ts.map +1 -0
  7. package/dist/analysis/strategies/git-strategy.test.js +147 -0
  8. package/dist/analysis/strategies/git-strategy.test.js.map +1 -0
  9. package/dist/commands/analyze.test.d.ts +2 -0
  10. package/dist/commands/analyze.test.d.ts.map +1 -0
  11. package/dist/commands/analyze.test.js +70 -0
  12. package/dist/commands/analyze.test.js.map +1 -0
  13. package/dist/commands/init.test.js +128 -2
  14. package/dist/commands/init.test.js.map +1 -1
  15. package/dist/config.test.js +167 -0
  16. package/dist/config.test.js.map +1 -1
  17. package/dist/git/git.errors.test.d.ts +2 -0
  18. package/dist/git/git.errors.test.d.ts.map +1 -0
  19. package/dist/git/git.errors.test.js +34 -0
  20. package/dist/git/git.errors.test.js.map +1 -0
  21. package/dist/git/git.operations.test.d.ts +2 -0
  22. package/dist/git/git.operations.test.d.ts.map +1 -0
  23. package/dist/git/git.operations.test.js +164 -0
  24. package/dist/git/git.operations.test.js.map +1 -0
  25. package/dist/llm/llm.test.d.ts +2 -0
  26. package/dist/llm/llm.test.d.ts.map +1 -0
  27. package/dist/llm/llm.test.js +224 -0
  28. package/dist/llm/llm.test.js.map +1 -0
  29. package/dist/llm/response-parser.test.d.ts +2 -0
  30. package/dist/llm/response-parser.test.d.ts.map +1 -0
  31. package/dist/llm/response-parser.test.js +134 -0
  32. package/dist/llm/response-parser.test.js.map +1 -0
  33. package/dist/presenters/console-presenter.test.d.ts +2 -0
  34. package/dist/presenters/console-presenter.test.d.ts.map +1 -0
  35. package/dist/presenters/console-presenter.test.js +227 -0
  36. package/dist/presenters/console-presenter.test.js.map +1 -0
  37. package/dist/version.test.d.ts +1 -2
  38. package/dist/version.test.d.ts.map +1 -1
  39. package/dist/version.test.js +29 -16
  40. package/dist/version.test.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/analysis/analysis.orchestrator.test.ts +237 -0
  43. package/src/analysis/strategies/git-strategy.test.ts +210 -0
  44. package/src/commands/analyze.test.ts +91 -0
  45. package/src/commands/init.test.ts +200 -5
  46. package/src/config.test.ts +232 -2
  47. package/src/git/git.errors.test.ts +43 -0
  48. package/src/git/git.operations.test.ts +222 -0
  49. package/src/llm/llm.test.ts +315 -0
  50. package/src/llm/response-parser.test.ts +170 -0
  51. package/src/presenters/console-presenter.test.ts +259 -0
  52. package/src/version.test.ts +30 -16
@@ -36,9 +36,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const config_1 = require("./config");
37
37
  const fs = __importStar(require("fs"));
38
38
  const yaml = __importStar(require("js-yaml"));
39
+ const readline = __importStar(require("readline"));
39
40
  // Mock fs and yaml modules
40
41
  jest.mock('fs');
41
42
  jest.mock('js-yaml');
43
+ jest.mock('readline');
44
+ jest.mock('./logger', () => ({
45
+ loggerInstance: {
46
+ info: jest.fn(),
47
+ warn: jest.fn(),
48
+ error: jest.fn(),
49
+ },
50
+ }));
51
+ const logger_1 = require("./logger");
52
+ const mockLogger = logger_1.loggerInstance;
42
53
  describe('Configuration Module', () => {
43
54
  const mockConfig = {
44
55
  provider: 'openai',
@@ -93,5 +104,161 @@ describe('Configuration Module', () => {
93
104
  expect(result.errors.length).toBeGreaterThan(0);
94
105
  });
95
106
  });
107
+ // --- NEW TEST CASES ---
108
+ describe('loadConfig — additional branches', () => {
109
+ test('returns null when YAML parses to null', async () => {
110
+ fs.existsSync.mockReturnValue(true);
111
+ fs.readFileSync.mockReturnValue('');
112
+ yaml.load.mockReturnValue(null);
113
+ const result = await (0, config_1.loadConfig)('/test/cadr.yaml');
114
+ expect(result).toBeNull();
115
+ expect(mockLogger.error).toHaveBeenCalledWith('Invalid YAML configuration', expect.objectContaining({ configPath: '/test/cadr.yaml' }));
116
+ });
117
+ test('returns null when YAML parses to a string', async () => {
118
+ fs.existsSync.mockReturnValue(true);
119
+ fs.readFileSync.mockReturnValue('just a string');
120
+ yaml.load.mockReturnValue('just a string');
121
+ const result = await (0, config_1.loadConfig)('/test/cadr.yaml');
122
+ expect(result).toBeNull();
123
+ expect(mockLogger.error).toHaveBeenCalledWith('Invalid YAML configuration', expect.objectContaining({ configPath: '/test/cadr.yaml' }));
124
+ });
125
+ test('does not log warning when api_key_env is set in environment', async () => {
126
+ const envKey = 'TEST_API_KEY_PRESENT';
127
+ const configWithEnv = { ...mockConfig, api_key_env: envKey };
128
+ process.env[envKey] = 'some-key-value';
129
+ fs.existsSync.mockReturnValue(true);
130
+ fs.readFileSync.mockReturnValue('yaml');
131
+ yaml.load.mockReturnValue(configWithEnv);
132
+ const result = await (0, config_1.loadConfig)('/test/cadr.yaml');
133
+ expect(result).toEqual(configWithEnv);
134
+ expect(mockLogger.warn).not.toHaveBeenCalledWith('API key environment variable is not set', expect.anything());
135
+ delete process.env[envKey];
136
+ });
137
+ test('logs warning but still returns config when api_key_env is NOT set', async () => {
138
+ const envKey = 'MISSING_API_KEY_XYZ';
139
+ const configWithMissingEnv = { ...mockConfig, api_key_env: envKey };
140
+ delete process.env[envKey];
141
+ fs.existsSync.mockReturnValue(true);
142
+ fs.readFileSync.mockReturnValue('yaml');
143
+ yaml.load.mockReturnValue(configWithMissingEnv);
144
+ const result = await (0, config_1.loadConfig)('/test/cadr.yaml');
145
+ expect(result).toEqual(configWithMissingEnv);
146
+ expect(mockLogger.warn).toHaveBeenCalledWith('API key environment variable is not set', { api_key_env: envKey });
147
+ });
148
+ test('returns null when readFileSync throws a permissions error', async () => {
149
+ fs.existsSync.mockReturnValue(true);
150
+ fs.readFileSync.mockImplementation(() => {
151
+ throw new Error('EACCES: permission denied');
152
+ });
153
+ const result = await (0, config_1.loadConfig)('/test/cadr.yaml');
154
+ expect(result).toBeNull();
155
+ expect(mockLogger.error).toHaveBeenCalledWith('Failed to load configuration', expect.objectContaining({ configPath: '/test/cadr.yaml' }));
156
+ });
157
+ });
158
+ describe('validateConfig — additional cases', () => {
159
+ test('accepts provider gemini as valid', () => {
160
+ const geminiConfig = { ...mockConfig, provider: 'gemini' };
161
+ const result = (0, config_1.validateConfig)(geminiConfig);
162
+ expect(result.valid).toBe(true);
163
+ expect(result.errors).toHaveLength(0);
164
+ });
165
+ test('accepts timeout_seconds: 1 (min boundary) as valid', () => {
166
+ const config = { ...mockConfig, timeout_seconds: 1 };
167
+ const result = (0, config_1.validateConfig)(config);
168
+ expect(result.valid).toBe(true);
169
+ expect(result.errors).toHaveLength(0);
170
+ });
171
+ test('accepts timeout_seconds: 60 (max boundary) as valid', () => {
172
+ const config = { ...mockConfig, timeout_seconds: 60 };
173
+ const result = (0, config_1.validateConfig)(config);
174
+ expect(result.valid).toBe(true);
175
+ expect(result.errors).toHaveLength(0);
176
+ });
177
+ test('rejects timeout_seconds: 0 (below min) with error message', () => {
178
+ const config = { ...mockConfig, timeout_seconds: 0 };
179
+ const result = (0, config_1.validateConfig)(config);
180
+ expect(result.valid).toBe(false);
181
+ expect(result.errors.join('\n')).toMatch(/timeout_seconds must be at least 1 second/);
182
+ });
183
+ test('rejects timeout_seconds: 61 (above max)', () => {
184
+ const config = { ...mockConfig, timeout_seconds: 61 };
185
+ const result = (0, config_1.validateConfig)(config);
186
+ expect(result.valid).toBe(false);
187
+ expect(result.errors.join('\n')).toMatch(/timeout_seconds must not exceed 60 seconds/);
188
+ });
189
+ test('returns unknown validation error for non-yup errors', () => {
190
+ // We need to force validateSync to throw a non-yup error.
191
+ // We can do this by passing an object with a valueOf that throws.
192
+ const badConfig = {
193
+ get provider() {
194
+ throw new TypeError('unexpected');
195
+ },
196
+ };
197
+ const result = (0, config_1.validateConfig)(badConfig);
198
+ expect(result.valid).toBe(false);
199
+ expect(result.errors).toEqual(['Unknown validation error']);
200
+ });
201
+ test('accepts ignore_patterns as a valid optional array', () => {
202
+ const config = { ...mockConfig, ignore_patterns: ['*.md', '*.json'] };
203
+ const result = (0, config_1.validateConfig)(config);
204
+ expect(result.valid).toBe(true);
205
+ expect(result.errors).toHaveLength(0);
206
+ });
207
+ });
208
+ describe('getDefaultConfigPath', () => {
209
+ test('returns cadr.yaml', () => {
210
+ const result = (0, config_1.getDefaultConfigPath)();
211
+ expect(result).toBe('cadr.yaml');
212
+ });
213
+ });
214
+ describe('createConfig', () => {
215
+ function mockReadline(answers) {
216
+ let callIndex = 0;
217
+ const mockRl = {
218
+ question: jest.fn((_prompt, callback) => {
219
+ callback(answers[callIndex] || '');
220
+ callIndex++;
221
+ }),
222
+ close: jest.fn(),
223
+ };
224
+ readline.createInterface.mockReturnValue(mockRl);
225
+ return mockRl;
226
+ }
227
+ beforeEach(() => {
228
+ // yaml.dump needs to return a string for writeFileSync
229
+ yaml.dump.mockReturnValue('provider: openai\n');
230
+ });
231
+ test('creates config with openai defaults and writes to file', async () => {
232
+ // Answers: provider=openai, model=gpt-4, api_key_env=OPENAI_API_KEY, timeout=15, ignore_patterns=*.md
233
+ const mockRl = mockReadline(['openai', 'gpt-4', 'OPENAI_API_KEY', '15', '*.md']);
234
+ const result = await (0, config_1.createConfig)('/test/cadr.yaml');
235
+ expect(result).not.toBeNull();
236
+ expect(result.provider).toBe('openai');
237
+ expect(result.analysis_model).toBe('gpt-4');
238
+ expect(result.api_key_env).toBe('OPENAI_API_KEY');
239
+ expect(result.timeout_seconds).toBe(15);
240
+ expect(result.ignore_patterns).toEqual(['*.md']);
241
+ expect(fs.writeFileSync).toHaveBeenCalledWith('/test/cadr.yaml', expect.any(String), 'utf-8');
242
+ expect(mockRl.close).toHaveBeenCalled();
243
+ });
244
+ test('creates config with gemini defaults when gemini provider is chosen', async () => {
245
+ // Answer provider=gemini, then use defaults for the rest
246
+ mockReadline(['gemini', '', '', '15', '']);
247
+ // yaml.dump needs to be realistic for this call
248
+ yaml.dump.mockReturnValue('provider: gemini\n');
249
+ const result = await (0, config_1.createConfig)('/test/cadr.yaml');
250
+ expect(result).not.toBeNull();
251
+ expect(result.provider).toBe('gemini');
252
+ expect(result.analysis_model).toBe('gemini-1.5-pro');
253
+ expect(result.api_key_env).toBe('GEMINI_API_KEY');
254
+ });
255
+ test('returns null when validation fails during createConfig', async () => {
256
+ // Use an invalid provider to trigger validation failure
257
+ mockReadline(['invalid_provider', 'model', 'KEY', '15', '']);
258
+ const result = await (0, config_1.createConfig)('/test/cadr.yaml');
259
+ expect(result).toBeNull();
260
+ expect(fs.writeFileSync).not.toHaveBeenCalled();
261
+ });
262
+ });
96
263
  });
97
264
  //# sourceMappingURL=config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.test.d.ts","sourceRoot":"","sources":["../../src/git/git.errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const git_errors_1 = require("./git.errors");
4
+ describe('GitError', () => {
5
+ it('should set message, code, and name for NOT_GIT_REPO', () => {
6
+ const error = new git_errors_1.GitError('msg', 'NOT_GIT_REPO');
7
+ expect(error.message).toBe('msg');
8
+ expect(error.code).toBe('NOT_GIT_REPO');
9
+ expect(error.name).toBe('GitError');
10
+ });
11
+ it('should set code to GIT_NOT_FOUND', () => {
12
+ const error = new git_errors_1.GitError('msg', 'GIT_NOT_FOUND');
13
+ expect(error.code).toBe('GIT_NOT_FOUND');
14
+ });
15
+ it('should set code to GIT_ERROR', () => {
16
+ const error = new git_errors_1.GitError('msg', 'GIT_ERROR');
17
+ expect(error.code).toBe('GIT_ERROR');
18
+ });
19
+ it('should store originalError when provided', () => {
20
+ const original = new Error('original');
21
+ const error = new git_errors_1.GitError('msg', 'GIT_ERROR', original);
22
+ expect(error.originalError).toBe(original);
23
+ });
24
+ it('should have undefined originalError when not provided', () => {
25
+ const error = new git_errors_1.GitError('msg', 'GIT_ERROR');
26
+ expect(error.originalError).toBeUndefined();
27
+ });
28
+ it('should be an instance of both Error and GitError', () => {
29
+ const error = new git_errors_1.GitError('msg', 'NOT_GIT_REPO');
30
+ expect(error instanceof Error).toBe(true);
31
+ expect(error instanceof git_errors_1.GitError).toBe(true);
32
+ });
33
+ });
34
+ //# sourceMappingURL=git.errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.test.js","sourceRoot":"","sources":["../../src/git/git.errors.test.ts"],"names":[],"mappings":";;AAAA,6CAAwC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAElD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAEnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEzD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,qBAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAElD,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,YAAY,qBAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.operations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.operations.test.d.ts","sourceRoot":"","sources":["../../src/git/git.operations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mockExecAsync = jest.fn();
4
+ jest.mock('child_process', () => ({ exec: jest.fn() }));
5
+ jest.mock('util', () => ({
6
+ ...jest.requireActual('util'),
7
+ promisify: jest.fn(() => mockExecAsync),
8
+ }));
9
+ const git_errors_1 = require("./git.errors");
10
+ const git_operations_1 = require("./git.operations");
11
+ beforeEach(() => {
12
+ jest.clearAllMocks();
13
+ });
14
+ afterEach(() => {
15
+ jest.restoreAllMocks();
16
+ });
17
+ // ---------------------------------------------------------------------------
18
+ // handleGitError (tested indirectly through any git command call)
19
+ // ---------------------------------------------------------------------------
20
+ describe('handleGitError', () => {
21
+ it('throws GitError with code NOT_GIT_REPO when exec fails with code 128', async () => {
22
+ const error = Object.assign(new Error('fatal: not a git repository'), { code: 128 });
23
+ mockExecAsync.mockRejectedValue(error);
24
+ const promise = (0, git_operations_1.getStagedFiles)();
25
+ await expect(promise).rejects.toThrow(git_errors_1.GitError);
26
+ await expect(promise).rejects.toMatchObject({ code: 'NOT_GIT_REPO' });
27
+ });
28
+ it('throws GitError with code GIT_NOT_FOUND when exec fails with code 127', async () => {
29
+ const error = Object.assign(new Error('git: command not found'), { code: 127 });
30
+ mockExecAsync.mockRejectedValue(error);
31
+ await expect((0, git_operations_1.getStagedFiles)()).rejects.toThrow(git_errors_1.GitError);
32
+ await expect((0, git_operations_1.getStagedFiles)()).rejects.toMatchObject({ code: 'GIT_NOT_FOUND' });
33
+ });
34
+ it('throws GitError with code GIT_ERROR when exec fails with other code', async () => {
35
+ const error = Object.assign(new Error('unknown error'), { code: 1 });
36
+ mockExecAsync.mockRejectedValue(error);
37
+ await expect((0, git_operations_1.getStagedFiles)()).rejects.toThrow(git_errors_1.GitError);
38
+ await expect((0, git_operations_1.getStagedFiles)()).rejects.toMatchObject({ code: 'GIT_ERROR' });
39
+ });
40
+ });
41
+ // ---------------------------------------------------------------------------
42
+ // getStagedFiles
43
+ // ---------------------------------------------------------------------------
44
+ describe('getStagedFiles', () => {
45
+ it('returns array of filenames from stdout', async () => {
46
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'file1.ts\nfile2.ts\nfile3.ts\n' });
47
+ const result = await (0, git_operations_1.getStagedFiles)();
48
+ expect(result).toEqual(['file1.ts', 'file2.ts', 'file3.ts']);
49
+ });
50
+ it('returns empty array when stdout is empty', async () => {
51
+ mockExecAsync.mockResolvedValueOnce({ stdout: '' });
52
+ const result = await (0, git_operations_1.getStagedFiles)();
53
+ expect(result).toEqual([]);
54
+ });
55
+ it('filters blank lines from stdout', async () => {
56
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'file1.ts\n\nfile2.ts\n\n' });
57
+ const result = await (0, git_operations_1.getStagedFiles)();
58
+ expect(result).toEqual(['file1.ts', 'file2.ts']);
59
+ });
60
+ });
61
+ // ---------------------------------------------------------------------------
62
+ // getStagedDiff
63
+ // ---------------------------------------------------------------------------
64
+ describe('getStagedDiff', () => {
65
+ it('returns raw diff string from stdout', async () => {
66
+ const diff = 'diff --git a/file.ts b/file.ts\n+added line\n';
67
+ mockExecAsync.mockResolvedValueOnce({ stdout: diff });
68
+ const result = await (0, git_operations_1.getStagedDiff)();
69
+ expect(result).toBe(diff);
70
+ });
71
+ });
72
+ // ---------------------------------------------------------------------------
73
+ // getAllChanges
74
+ // ---------------------------------------------------------------------------
75
+ describe('getAllChanges', () => {
76
+ it('returns array of filenames', async () => {
77
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'a.ts\nb.ts\n' });
78
+ const result = await (0, git_operations_1.getAllChanges)();
79
+ expect(result).toEqual(['a.ts', 'b.ts']);
80
+ });
81
+ it('runs git diff HEAD --name-only command', async () => {
82
+ mockExecAsync.mockResolvedValueOnce({ stdout: '' });
83
+ await (0, git_operations_1.getAllChanges)();
84
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --name-only');
85
+ });
86
+ });
87
+ // ---------------------------------------------------------------------------
88
+ // getAllDiff
89
+ // ---------------------------------------------------------------------------
90
+ describe('getAllDiff', () => {
91
+ it('returns raw diff string', async () => {
92
+ const diff = 'diff --git a/x.ts b/x.ts\n-removed\n+added\n';
93
+ mockExecAsync.mockResolvedValueOnce({ stdout: diff });
94
+ const result = await (0, git_operations_1.getAllDiff)();
95
+ expect(result).toBe(diff);
96
+ });
97
+ it('runs git diff HEAD --unified=1 command', async () => {
98
+ mockExecAsync.mockResolvedValueOnce({ stdout: '' });
99
+ await (0, git_operations_1.getAllDiff)();
100
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --unified=1');
101
+ });
102
+ });
103
+ // ---------------------------------------------------------------------------
104
+ // getChangedFiles
105
+ // ---------------------------------------------------------------------------
106
+ describe('getChangedFiles', () => {
107
+ it('delegates to getStagedFiles when mode is staged', async () => {
108
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'staged.ts\n' });
109
+ const result = await (0, git_operations_1.getChangedFiles)({ mode: 'staged' });
110
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff --cached --name-only');
111
+ expect(result).toEqual(['staged.ts']);
112
+ });
113
+ it('delegates to getAllChanges when mode is all', async () => {
114
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'all.ts\n' });
115
+ const result = await (0, git_operations_1.getChangedFiles)({ mode: 'all' });
116
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --name-only');
117
+ expect(result).toEqual(['all.ts']);
118
+ });
119
+ it('delegates to getAllChanges when mode is branch-diff (fallback)', async () => {
120
+ mockExecAsync.mockResolvedValueOnce({ stdout: 'branch.ts\n' });
121
+ const result = await (0, git_operations_1.getChangedFiles)({ mode: 'branch-diff' });
122
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --name-only');
123
+ expect(result).toEqual(['branch.ts']);
124
+ });
125
+ });
126
+ // ---------------------------------------------------------------------------
127
+ // getDiff
128
+ // ---------------------------------------------------------------------------
129
+ describe('getDiff', () => {
130
+ it('delegates to getStagedDiff when mode is staged', async () => {
131
+ const diff = 'staged diff content';
132
+ mockExecAsync.mockResolvedValueOnce({ stdout: diff });
133
+ const result = await (0, git_operations_1.getDiff)({ mode: 'staged' });
134
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff --cached --unified=1');
135
+ expect(result).toBe(diff);
136
+ });
137
+ it('delegates to getAllDiff when mode is all', async () => {
138
+ const diff = 'all diff content';
139
+ mockExecAsync.mockResolvedValueOnce({ stdout: diff });
140
+ const result = await (0, git_operations_1.getDiff)({ mode: 'all' });
141
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --unified=1');
142
+ expect(result).toBe(diff);
143
+ });
144
+ it('delegates to getAllDiff when mode is branch-diff (fallback)', async () => {
145
+ const diff = 'branch diff content';
146
+ mockExecAsync.mockResolvedValueOnce({ stdout: diff });
147
+ const result = await (0, git_operations_1.getDiff)({ mode: 'branch-diff' });
148
+ expect(mockExecAsync).toHaveBeenCalledWith('git diff HEAD --unified=1');
149
+ expect(result).toBe(diff);
150
+ });
151
+ });
152
+ // ---------------------------------------------------------------------------
153
+ // parseFileList (tested indirectly)
154
+ // ---------------------------------------------------------------------------
155
+ describe('parseFileList (indirect)', () => {
156
+ it('multi-line stdout with trailing newline returns only non-empty trimmed entries', async () => {
157
+ mockExecAsync.mockResolvedValueOnce({
158
+ stdout: ' file1.ts \nfile2.ts\n \n file3.ts\n',
159
+ });
160
+ const result = await (0, git_operations_1.getStagedFiles)();
161
+ expect(result).toEqual(['file1.ts', 'file2.ts', 'file3.ts']);
162
+ });
163
+ });
164
+ //# sourceMappingURL=git.operations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.operations.test.js","sourceRoot":"","sources":["../../src/git/git.operations.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llm.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.test.d.ts","sourceRoot":"","sources":["../../src/llm/llm.test.ts"],"names":[],"mappings":""}