codingbuddy 0.0.0-dev.20251219020401.c1905b0 → 0.0.0-dev.20251219075517.588a69b

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 (73) hide show
  1. package/README.md +132 -8
  2. package/dist/src/analyzer/code.sampler.js +11 -16
  3. package/dist/src/analyzer/code.sampler.js.map +1 -1
  4. package/dist/src/analyzer/config.analyzer.js +7 -13
  5. package/dist/src/analyzer/config.analyzer.js.map +1 -1
  6. package/dist/src/analyzer/directory.analyzer.js +17 -21
  7. package/dist/src/analyzer/directory.analyzer.js.map +1 -1
  8. package/dist/src/analyzer/package.analyzer.js +5 -2
  9. package/dist/src/analyzer/package.analyzer.js.map +1 -1
  10. package/dist/src/config/context.loader.js +20 -26
  11. package/dist/src/config/context.loader.js.map +1 -1
  12. package/dist/src/config/ignore.parser.js +8 -10
  13. package/dist/src/config/ignore.parser.js.map +1 -1
  14. package/dist/src/shared/file.utils.d.ts +4 -0
  15. package/dist/src/shared/file.utils.js +37 -0
  16. package/dist/src/shared/file.utils.js.map +1 -0
  17. package/dist/src/shared/path.utils.d.ts +2 -0
  18. package/dist/src/shared/path.utils.js +14 -0
  19. package/dist/src/shared/path.utils.js.map +1 -0
  20. package/dist/tsconfig.build.tsbuildinfo +1 -0
  21. package/package.json +2 -2
  22. package/dist/src/analyzer/analyzer.service.spec.d.ts +0 -1
  23. package/dist/src/analyzer/analyzer.service.spec.js +0 -67
  24. package/dist/src/analyzer/analyzer.service.spec.js.map +0 -1
  25. package/dist/src/analyzer/code.sampler.spec.d.ts +0 -1
  26. package/dist/src/analyzer/code.sampler.spec.js +0 -157
  27. package/dist/src/analyzer/code.sampler.spec.js.map +0 -1
  28. package/dist/src/analyzer/config.analyzer.spec.d.ts +0 -1
  29. package/dist/src/analyzer/config.analyzer.spec.js +0 -146
  30. package/dist/src/analyzer/config.analyzer.spec.js.map +0 -1
  31. package/dist/src/analyzer/directory.analyzer.spec.d.ts +0 -1
  32. package/dist/src/analyzer/directory.analyzer.spec.js +0 -119
  33. package/dist/src/analyzer/directory.analyzer.spec.js.map +0 -1
  34. package/dist/src/analyzer/package.analyzer.spec.d.ts +0 -1
  35. package/dist/src/analyzer/package.analyzer.spec.js +0 -109
  36. package/dist/src/analyzer/package.analyzer.spec.js.map +0 -1
  37. package/dist/src/cli/cli.spec.d.ts +0 -1
  38. package/dist/src/cli/cli.spec.js +0 -84
  39. package/dist/src/cli/cli.spec.js.map +0 -1
  40. package/dist/src/cli/init/config.generator.spec.d.ts +0 -1
  41. package/dist/src/cli/init/config.generator.spec.js +0 -182
  42. package/dist/src/cli/init/config.generator.spec.js.map +0 -1
  43. package/dist/src/cli/init/config.writer.spec.d.ts +0 -1
  44. package/dist/src/cli/init/config.writer.spec.js +0 -112
  45. package/dist/src/cli/init/config.writer.spec.js.map +0 -1
  46. package/dist/src/cli/init/init.command.spec.d.ts +0 -1
  47. package/dist/src/cli/init/init.command.spec.js +0 -227
  48. package/dist/src/cli/init/init.command.spec.js.map +0 -1
  49. package/dist/src/cli/init/prompt.builder.spec.d.ts +0 -1
  50. package/dist/src/cli/init/prompt.builder.spec.js +0 -199
  51. package/dist/src/cli/init/prompt.builder.spec.js.map +0 -1
  52. package/dist/src/cli/utils/console.spec.d.ts +0 -1
  53. package/dist/src/cli/utils/console.spec.js +0 -100
  54. package/dist/src/cli/utils/console.spec.js.map +0 -1
  55. package/dist/src/config/config.loader.spec.d.ts +0 -1
  56. package/dist/src/config/config.loader.spec.js +0 -86
  57. package/dist/src/config/config.loader.spec.js.map +0 -1
  58. package/dist/src/config/config.schema.spec.d.ts +0 -1
  59. package/dist/src/config/config.schema.spec.js +0 -235
  60. package/dist/src/config/config.schema.spec.js.map +0 -1
  61. package/dist/src/config/context.loader.spec.d.ts +0 -1
  62. package/dist/src/config/context.loader.spec.js +0 -123
  63. package/dist/src/config/context.loader.spec.js.map +0 -1
  64. package/dist/src/config/ignore.parser.spec.d.ts +0 -1
  65. package/dist/src/config/ignore.parser.spec.js +0 -130
  66. package/dist/src/config/ignore.parser.spec.js.map +0 -1
  67. package/dist/src/keyword/keyword.service.spec.d.ts +0 -1
  68. package/dist/src/keyword/keyword.service.spec.js +0 -225
  69. package/dist/src/keyword/keyword.service.spec.js.map +0 -1
  70. package/dist/src/mcp/mcp.service.spec.d.ts +0 -1
  71. package/dist/src/mcp/mcp.service.spec.js +0 -262
  72. package/dist/src/mcp/mcp.service.spec.js.map +0 -1
  73. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,227 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const { mockAnalyzeProject, mockGenerate, mockFindExistingConfig, mockWriteConfig } = vitest_1.vi.hoisted(() => ({
5
- mockAnalyzeProject: vitest_1.vi.fn(),
6
- mockGenerate: vitest_1.vi.fn(),
7
- mockFindExistingConfig: vitest_1.vi.fn(),
8
- mockWriteConfig: vitest_1.vi.fn(),
9
- }));
10
- vitest_1.vi.mock('../../analyzer', () => ({
11
- AnalyzerService: class MockAnalyzerService {
12
- constructor() {
13
- this.analyzeProject = mockAnalyzeProject;
14
- }
15
- },
16
- }));
17
- vitest_1.vi.mock('./config.generator', () => ({
18
- ConfigGenerator: class MockConfigGenerator {
19
- constructor() {
20
- this.generate = mockGenerate;
21
- }
22
- },
23
- }));
24
- vitest_1.vi.mock('./config.writer', () => ({
25
- findExistingConfig: mockFindExistingConfig,
26
- writeConfig: mockWriteConfig,
27
- }));
28
- vitest_1.vi.mock('../utils/console', () => ({
29
- createConsoleUtils: () => ({
30
- log: {
31
- info: vitest_1.vi.fn(),
32
- success: vitest_1.vi.fn(),
33
- warn: vitest_1.vi.fn(),
34
- error: vitest_1.vi.fn(),
35
- step: vitest_1.vi.fn(),
36
- },
37
- spinner: {
38
- start: vitest_1.vi.fn(),
39
- succeed: vitest_1.vi.fn(),
40
- fail: vitest_1.vi.fn(),
41
- stop: vitest_1.vi.fn(),
42
- },
43
- formatConfig: () => '{}',
44
- }),
45
- }));
46
- const init_command_1 = require("./init.command");
47
- (0, vitest_1.describe)('init.command', () => {
48
- const mockAnalysis = {
49
- packageInfo: {
50
- name: 'test-app',
51
- version: '1.0.0',
52
- dependencies: {},
53
- devDependencies: {},
54
- scripts: {},
55
- detectedFrameworks: [],
56
- },
57
- directoryStructure: {
58
- rootDirs: ['src'],
59
- rootFiles: ['package.json'],
60
- allFiles: [],
61
- patterns: [],
62
- totalFiles: 5,
63
- totalDirs: 2,
64
- },
65
- configFiles: { detected: [] },
66
- codeSamples: [],
67
- detectedPatterns: [],
68
- };
69
- const mockConfig = {
70
- projectName: 'test-app',
71
- language: 'en',
72
- };
73
- (0, vitest_1.beforeEach)(() => {
74
- vitest_1.vi.clearAllMocks();
75
- mockAnalyzeProject.mockResolvedValue(mockAnalysis);
76
- mockGenerate.mockResolvedValue(mockConfig);
77
- mockFindExistingConfig.mockResolvedValue(null);
78
- mockWriteConfig.mockResolvedValue('/project/codingbuddy.config.js');
79
- });
80
- (0, vitest_1.describe)('getApiKey', () => {
81
- const originalEnv = process.env;
82
- (0, vitest_1.beforeEach)(() => {
83
- process.env = { ...originalEnv };
84
- });
85
- (0, vitest_1.afterEach)(() => {
86
- process.env = originalEnv;
87
- });
88
- (0, vitest_1.it)('should return API key from options if provided', () => {
89
- const result = (0, init_command_1.getApiKey)({ apiKey: 'test-key' });
90
- (0, vitest_1.expect)(result).toBe('test-key');
91
- });
92
- (0, vitest_1.it)('should return API key from ANTHROPIC_API_KEY env var', () => {
93
- process.env.ANTHROPIC_API_KEY = 'env-key';
94
- const result = (0, init_command_1.getApiKey)({});
95
- (0, vitest_1.expect)(result).toBe('env-key');
96
- });
97
- (0, vitest_1.it)('should return null if no API key available', () => {
98
- delete process.env.ANTHROPIC_API_KEY;
99
- const result = (0, init_command_1.getApiKey)({});
100
- (0, vitest_1.expect)(result).toBeNull();
101
- });
102
- });
103
- (0, vitest_1.describe)('runInit', () => {
104
- (0, vitest_1.it)('should complete successfully with valid options', async () => {
105
- const options = {
106
- projectRoot: '/project',
107
- format: 'js',
108
- force: false,
109
- apiKey: 'test-key',
110
- };
111
- const result = await (0, init_command_1.runInit)(options);
112
- (0, vitest_1.expect)(result.success).toBe(true);
113
- (0, vitest_1.expect)(result.configPath).toBe('/project/codingbuddy.config.js');
114
- });
115
- (0, vitest_1.it)('should fail without API key', async () => {
116
- const options = {
117
- projectRoot: '/project',
118
- format: 'js',
119
- force: false,
120
- };
121
- const result = await (0, init_command_1.runInit)(options);
122
- (0, vitest_1.expect)(result.success).toBe(false);
123
- (0, vitest_1.expect)(result.error).toContain('API key');
124
- });
125
- (0, vitest_1.it)('should check for existing config', async () => {
126
- const options = {
127
- projectRoot: '/project',
128
- format: 'js',
129
- force: false,
130
- apiKey: 'test-key',
131
- };
132
- await (0, init_command_1.runInit)(options);
133
- (0, vitest_1.expect)(mockFindExistingConfig).toHaveBeenCalledWith('/project');
134
- });
135
- (0, vitest_1.it)('should fail if config exists and force is false', async () => {
136
- mockFindExistingConfig.mockResolvedValue('/project/codingbuddy.config.js');
137
- const options = {
138
- projectRoot: '/project',
139
- format: 'js',
140
- force: false,
141
- apiKey: 'test-key',
142
- };
143
- const result = await (0, init_command_1.runInit)(options);
144
- (0, vitest_1.expect)(result.success).toBe(false);
145
- (0, vitest_1.expect)(result.error).toContain('already exists');
146
- });
147
- (0, vitest_1.it)('should overwrite if config exists and force is true', async () => {
148
- mockFindExistingConfig.mockResolvedValue('/project/codingbuddy.config.js');
149
- const options = {
150
- projectRoot: '/project',
151
- format: 'js',
152
- force: true,
153
- apiKey: 'test-key',
154
- };
155
- const result = await (0, init_command_1.runInit)(options);
156
- (0, vitest_1.expect)(result.success).toBe(true);
157
- (0, vitest_1.expect)(mockWriteConfig).toHaveBeenCalled();
158
- });
159
- (0, vitest_1.it)('should call analyzer service', async () => {
160
- const options = {
161
- projectRoot: '/project',
162
- format: 'js',
163
- force: false,
164
- apiKey: 'test-key',
165
- };
166
- await (0, init_command_1.runInit)(options);
167
- (0, vitest_1.expect)(mockAnalyzeProject).toHaveBeenCalledWith('/project');
168
- });
169
- (0, vitest_1.it)('should call config generator', async () => {
170
- const options = {
171
- projectRoot: '/project',
172
- format: 'js',
173
- force: false,
174
- apiKey: 'test-key',
175
- };
176
- await (0, init_command_1.runInit)(options);
177
- (0, vitest_1.expect)(mockGenerate).toHaveBeenCalledWith(mockAnalysis);
178
- });
179
- (0, vitest_1.it)('should write config file', async () => {
180
- const options = {
181
- projectRoot: '/project',
182
- format: 'js',
183
- force: false,
184
- apiKey: 'test-key',
185
- };
186
- await (0, init_command_1.runInit)(options);
187
- (0, vitest_1.expect)(mockWriteConfig).toHaveBeenCalledWith('/project', mockConfig, { format: 'js' });
188
- });
189
- (0, vitest_1.it)('should handle analyzer error', async () => {
190
- mockAnalyzeProject.mockRejectedValue(new Error('Analysis failed'));
191
- const options = {
192
- projectRoot: '/project',
193
- format: 'js',
194
- force: false,
195
- apiKey: 'test-key',
196
- };
197
- const result = await (0, init_command_1.runInit)(options);
198
- (0, vitest_1.expect)(result.success).toBe(false);
199
- (0, vitest_1.expect)(result.error).toContain('Analysis failed');
200
- });
201
- (0, vitest_1.it)('should handle generator error', async () => {
202
- mockGenerate.mockRejectedValue(new Error('Generation failed'));
203
- const options = {
204
- projectRoot: '/project',
205
- format: 'js',
206
- force: false,
207
- apiKey: 'test-key',
208
- };
209
- const result = await (0, init_command_1.runInit)(options);
210
- (0, vitest_1.expect)(result.success).toBe(false);
211
- (0, vitest_1.expect)(result.error).toContain('Generation failed');
212
- });
213
- (0, vitest_1.it)('should handle write error', async () => {
214
- mockWriteConfig.mockRejectedValue(new Error('Write failed'));
215
- const options = {
216
- projectRoot: '/project',
217
- format: 'js',
218
- force: false,
219
- apiKey: 'test-key',
220
- };
221
- const result = await (0, init_command_1.runInit)(options);
222
- (0, vitest_1.expect)(result.success).toBe(false);
223
- (0, vitest_1.expect)(result.error).toContain('Write failed');
224
- });
225
- });
226
- });
227
- //# sourceMappingURL=init.command.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.command.spec.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,199 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const prompt_builder_1 = require("./prompt.builder");
5
- (0, vitest_1.describe)('prompt.builder', () => {
6
- const mockAnalysis = {
7
- packageInfo: {
8
- name: 'my-app',
9
- version: '1.0.0',
10
- description: 'Test application',
11
- dependencies: {
12
- react: '^18.0.0',
13
- next: '^14.0.0',
14
- },
15
- devDependencies: {
16
- typescript: '^5.0.0',
17
- vitest: '^1.0.0',
18
- },
19
- scripts: {
20
- dev: 'next dev',
21
- build: 'next build',
22
- test: 'vitest',
23
- },
24
- type: 'module',
25
- detectedFrameworks: [
26
- { name: 'React', category: 'frontend', version: '^18.0.0' },
27
- { name: 'Next.js', category: 'fullstack', version: '^14.0.0' },
28
- { name: 'TypeScript', category: 'other', version: '^5.0.0' },
29
- ],
30
- },
31
- directoryStructure: {
32
- rootDirs: ['app', 'components', 'lib', 'public'],
33
- rootFiles: ['package.json', 'tsconfig.json', 'next.config.js'],
34
- allFiles: ['app/page.tsx', 'components/Button.tsx'],
35
- patterns: [
36
- { name: 'Next.js App Router', confidence: 1.0, indicators: ['app', 'components', 'lib', 'public'] },
37
- ],
38
- totalFiles: 50,
39
- totalDirs: 10,
40
- },
41
- configFiles: {
42
- typescript: {
43
- path: 'tsconfig.json',
44
- strict: true,
45
- target: 'ES2022',
46
- module: 'ESNext',
47
- hasPathAliases: true,
48
- },
49
- eslint: {
50
- path: '.eslintrc.json',
51
- format: 'legacy',
52
- extends: ['next/core-web-vitals'],
53
- plugins: ['@typescript-eslint'],
54
- },
55
- prettier: {
56
- path: '.prettierrc',
57
- tabWidth: 2,
58
- semi: true,
59
- singleQuote: true,
60
- trailingComma: 'all',
61
- },
62
- detected: ['tsconfig.json', '.eslintrc.json', '.prettierrc'],
63
- },
64
- codeSamples: [
65
- {
66
- path: 'app/page.tsx',
67
- language: 'typescript',
68
- category: 'page',
69
- preview: 'export default function Home() {\n return <div>Hello</div>;\n}',
70
- lineCount: 10,
71
- },
72
- {
73
- path: 'components/Button.tsx',
74
- language: 'typescript',
75
- category: 'component',
76
- preview: 'export function Button({ children }) {\n return <button>{children}</button>;\n}',
77
- lineCount: 5,
78
- },
79
- ],
80
- detectedPatterns: ['Next.js App Router', 'TypeScript', 'React Project'],
81
- };
82
- (0, vitest_1.describe)('buildSystemPrompt', () => {
83
- (0, vitest_1.it)('should return system prompt with role definition', () => {
84
- const result = (0, prompt_builder_1.buildSystemPrompt)();
85
- (0, vitest_1.expect)(result).toContain('CodingBuddy');
86
- (0, vitest_1.expect)(result).toContain('configuration');
87
- (0, vitest_1.expect)(result).toContain('JSON');
88
- });
89
- (0, vitest_1.it)('should include output format instructions', () => {
90
- const result = (0, prompt_builder_1.buildSystemPrompt)();
91
- (0, vitest_1.expect)(result).toContain('CodingBuddyConfig');
92
- (0, vitest_1.expect)(result).toMatch(/\bjson\b/i);
93
- });
94
- });
95
- (0, vitest_1.describe)('buildAnalysisPrompt', () => {
96
- (0, vitest_1.it)('should include package information section', () => {
97
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(mockAnalysis);
98
- (0, vitest_1.expect)(result).toContain('my-app');
99
- (0, vitest_1.expect)(result).toContain('React');
100
- (0, vitest_1.expect)(result).toContain('Next.js');
101
- });
102
- (0, vitest_1.it)('should include directory structure section', () => {
103
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(mockAnalysis);
104
- (0, vitest_1.expect)(result).toContain('app');
105
- (0, vitest_1.expect)(result).toContain('components');
106
- (0, vitest_1.expect)(result).toContain('Next.js App Router');
107
- });
108
- (0, vitest_1.it)('should include config files section', () => {
109
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(mockAnalysis);
110
- (0, vitest_1.expect)(result).toContain('TypeScript');
111
- (0, vitest_1.expect)(result).toContain('Strict mode');
112
- (0, vitest_1.expect)(result).toContain('ESLint');
113
- (0, vitest_1.expect)(result).toContain('Prettier');
114
- });
115
- (0, vitest_1.it)('should include code samples section', () => {
116
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(mockAnalysis);
117
- (0, vitest_1.expect)(result).toContain('app/page.tsx');
118
- (0, vitest_1.expect)(result).toContain('components/Button.tsx');
119
- });
120
- (0, vitest_1.it)('should include detected patterns', () => {
121
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(mockAnalysis);
122
- (0, vitest_1.expect)(result).toContain('Next.js App Router');
123
- (0, vitest_1.expect)(result).toContain('TypeScript');
124
- });
125
- (0, vitest_1.it)('should handle missing package info', () => {
126
- const analysisWithoutPackage = {
127
- ...mockAnalysis,
128
- packageInfo: null,
129
- };
130
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(analysisWithoutPackage);
131
- (0, vitest_1.expect)(result).toContain('No package.json found');
132
- });
133
- (0, vitest_1.it)('should handle empty code samples', () => {
134
- const analysisWithoutSamples = {
135
- ...mockAnalysis,
136
- codeSamples: [],
137
- };
138
- const result = (0, prompt_builder_1.buildAnalysisPrompt)(analysisWithoutSamples);
139
- (0, vitest_1.expect)(result).toContain('No code samples');
140
- });
141
- });
142
- (0, vitest_1.describe)('formatPackageInfo', () => {
143
- (0, vitest_1.it)('should format package info with frameworks', () => {
144
- const result = (0, prompt_builder_1.formatPackageInfo)(mockAnalysis.packageInfo);
145
- (0, vitest_1.expect)(result).toContain('my-app');
146
- (0, vitest_1.expect)(result).toContain('1.0.0');
147
- (0, vitest_1.expect)(result).toContain('React');
148
- (0, vitest_1.expect)(result).toContain('Next.js');
149
- });
150
- (0, vitest_1.it)('should include scripts', () => {
151
- const result = (0, prompt_builder_1.formatPackageInfo)(mockAnalysis.packageInfo);
152
- (0, vitest_1.expect)(result).toContain('dev');
153
- (0, vitest_1.expect)(result).toContain('build');
154
- (0, vitest_1.expect)(result).toContain('test');
155
- });
156
- });
157
- (0, vitest_1.describe)('formatDirectoryStructure', () => {
158
- (0, vitest_1.it)('should format directory structure with patterns', () => {
159
- const result = (0, prompt_builder_1.formatDirectoryStructure)(mockAnalysis.directoryStructure);
160
- (0, vitest_1.expect)(result).toContain('app');
161
- (0, vitest_1.expect)(result).toContain('components');
162
- (0, vitest_1.expect)(result).toContain('Next.js App Router');
163
- (0, vitest_1.expect)(result).toContain('1');
164
- });
165
- (0, vitest_1.it)('should include file counts', () => {
166
- const result = (0, prompt_builder_1.formatDirectoryStructure)(mockAnalysis.directoryStructure);
167
- (0, vitest_1.expect)(result).toContain('50');
168
- (0, vitest_1.expect)(result).toContain('10');
169
- });
170
- });
171
- (0, vitest_1.describe)('formatConfigFiles', () => {
172
- (0, vitest_1.it)('should format all config file summaries', () => {
173
- const result = (0, prompt_builder_1.formatConfigFiles)(mockAnalysis.configFiles);
174
- (0, vitest_1.expect)(result).toContain('TypeScript');
175
- (0, vitest_1.expect)(result).toContain('ESLint');
176
- (0, vitest_1.expect)(result).toContain('Prettier');
177
- });
178
- (0, vitest_1.it)('should include config details', () => {
179
- const result = (0, prompt_builder_1.formatConfigFiles)(mockAnalysis.configFiles);
180
- (0, vitest_1.expect)(result).toContain('Strict mode');
181
- (0, vitest_1.expect)(result).toContain('ES2022');
182
- (0, vitest_1.expect)(result).toContain('path aliases');
183
- });
184
- });
185
- (0, vitest_1.describe)('formatCodeSamples', () => {
186
- (0, vitest_1.it)('should format code samples with metadata', () => {
187
- const result = (0, prompt_builder_1.formatCodeSamples)(mockAnalysis.codeSamples);
188
- (0, vitest_1.expect)(result).toContain('app/page.tsx');
189
- (0, vitest_1.expect)(result).toContain('typescript');
190
- (0, vitest_1.expect)(result).toContain('page');
191
- });
192
- (0, vitest_1.it)('should include code preview', () => {
193
- const result = (0, prompt_builder_1.formatCodeSamples)(mockAnalysis.codeSamples);
194
- (0, vitest_1.expect)(result).toContain('export default function Home');
195
- (0, vitest_1.expect)(result).toContain('Button');
196
- });
197
- });
198
- });
199
- //# sourceMappingURL=prompt.builder.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.builder.spec.js","sourceRoot":"","sources":["../../../../src/cli/init/prompt.builder.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const console_1 = require("./console");
5
- (0, vitest_1.describe)('console utils', () => {
6
- let consoleUtils;
7
- let stdoutWrite;
8
- let stderrWrite;
9
- (0, vitest_1.beforeEach)(() => {
10
- stdoutWrite = vitest_1.vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
11
- stderrWrite = vitest_1.vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
12
- consoleUtils = (0, console_1.createConsoleUtils)();
13
- });
14
- (0, vitest_1.afterEach)(() => {
15
- vitest_1.vi.restoreAllMocks();
16
- });
17
- (0, vitest_1.describe)('log', () => {
18
- (0, vitest_1.it)('should output info message', () => {
19
- consoleUtils.log.info('Test message');
20
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
21
- const output = stdoutWrite.mock.calls[0][0];
22
- (0, vitest_1.expect)(output).toContain('Test message');
23
- });
24
- (0, vitest_1.it)('should output success message with checkmark', () => {
25
- consoleUtils.log.success('Success message');
26
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
27
- const output = stdoutWrite.mock.calls[0][0];
28
- (0, vitest_1.expect)(output).toContain('Success message');
29
- (0, vitest_1.expect)(output).toContain('✓');
30
- });
31
- (0, vitest_1.it)('should output warning message', () => {
32
- consoleUtils.log.warn('Warning message');
33
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
34
- const output = stdoutWrite.mock.calls[0][0];
35
- (0, vitest_1.expect)(output).toContain('Warning message');
36
- (0, vitest_1.expect)(output).toContain('⚠');
37
- });
38
- (0, vitest_1.it)('should output error message to stderr', () => {
39
- consoleUtils.log.error('Error message');
40
- (0, vitest_1.expect)(stderrWrite).toHaveBeenCalled();
41
- const output = stderrWrite.mock.calls[0][0];
42
- (0, vitest_1.expect)(output).toContain('Error message');
43
- (0, vitest_1.expect)(output).toContain('✗');
44
- });
45
- (0, vitest_1.it)('should output step with custom emoji', () => {
46
- consoleUtils.log.step('🔍', 'Analyzing project...');
47
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
48
- const output = stdoutWrite.mock.calls[0][0];
49
- (0, vitest_1.expect)(output).toContain('🔍');
50
- (0, vitest_1.expect)(output).toContain('Analyzing project...');
51
- });
52
- });
53
- (0, vitest_1.describe)('spinner', () => {
54
- (0, vitest_1.it)('should start spinner with message', () => {
55
- consoleUtils.spinner.start('Loading...');
56
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
57
- const output = stdoutWrite.mock.calls[0][0];
58
- (0, vitest_1.expect)(output).toContain('Loading...');
59
- });
60
- (0, vitest_1.it)('should stop spinner and show success', () => {
61
- consoleUtils.spinner.start('Loading...');
62
- stdoutWrite.mockClear();
63
- consoleUtils.spinner.succeed('Done!');
64
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
65
- const output = stdoutWrite.mock.calls.map((c) => c[0]).join('');
66
- (0, vitest_1.expect)(output).toContain('Done!');
67
- (0, vitest_1.expect)(output).toContain('✓');
68
- });
69
- (0, vitest_1.it)('should stop spinner and show failure', () => {
70
- consoleUtils.spinner.start('Loading...');
71
- stderrWrite.mockClear();
72
- consoleUtils.spinner.fail('Failed!');
73
- (0, vitest_1.expect)(stderrWrite).toHaveBeenCalled();
74
- const output = stderrWrite.mock.calls.map((c) => c[0]).join('');
75
- (0, vitest_1.expect)(output).toContain('Failed!');
76
- (0, vitest_1.expect)(output).toContain('✗');
77
- });
78
- (0, vitest_1.it)('should stop spinner without message', () => {
79
- consoleUtils.spinner.start('Loading...');
80
- stdoutWrite.mockClear();
81
- consoleUtils.spinner.stop();
82
- (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
83
- });
84
- });
85
- (0, vitest_1.describe)('formatConfig', () => {
86
- (0, vitest_1.it)('should format config object as readable output', () => {
87
- const config = {
88
- projectName: 'my-app',
89
- techStack: {
90
- frontend: ['React'],
91
- },
92
- };
93
- const result = consoleUtils.formatConfig(config);
94
- (0, vitest_1.expect)(result).toContain('projectName');
95
- (0, vitest_1.expect)(result).toContain('my-app');
96
- (0, vitest_1.expect)(result).toContain('React');
97
- });
98
- });
99
- });
100
- //# sourceMappingURL=console.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.spec.js","sourceRoot":"","sources":["../../../../src/cli/utils/console.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};