test-gen-js 0.2.0 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -8,7 +8,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
  ## [Unreleased]
9
9
 
10
10
  ### Planned
11
- - Directory scanning (`scan` command)
12
11
  - Node.js backend support
13
12
  - Custom templates
14
13
  - Watch mode
@@ -16,19 +15,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
15
 
17
16
  ---
18
17
 
19
- ## [0.2.0] - 2024-01-07
18
+ ## [0.2.1] - 2026-01-08
19
+
20
+ ### Fixed
21
+ - 🐛 Fixed AST traversal error "You must pass a scope and parentPath unless traversing a Program/File"
22
+ - Replaced `@babel/traverse` with recursive node walking for BlockStatement analysis
23
+ - Fixed `isReactComponent` function in `fileAnalyzer.ts`
24
+ - Fixed `extractHooks` function in `componentAnalyzer.ts`
25
+ - Now correctly handles components wrapped with `memo()`, `forwardRef()`, etc.
26
+
27
+ ---
28
+
29
+ ## [0.2.0] - 2026-01-07
20
30
 
21
31
  ### Added
22
32
  - 🎉 `init` command - Initialize test-gen-js configuration
23
33
  - Creates `.testgenrc.js` configuration file
24
34
  - Sets up Git hooks with husky and lint-staged
25
35
  - Pre-commit hook runs tests automatically before each commit
36
+ - 🎉 `scan` command - Scan directory and generate tests for all files
37
+ - Batch generate tests for entire directories
38
+ - Dry-run mode to preview without creating files
39
+ - Progress tracking and summary report
40
+ - Skip files with no components/functions
26
41
  - Configuration file support (`.testgenrc.js`)
27
42
 
28
43
  ### Commands
29
44
  - `test-gen-js init` - Initialize configuration and Git hooks
30
45
  - `--no-hooks` - Skip Git hooks setup
31
46
  - `--force` - Overwrite existing configuration
47
+ - `test-gen-js scan <directory>` - Scan and generate tests
48
+ - `--dry-run` - Preview without creating files
49
+ - `--pattern` - File pattern to match
50
+ - `--exclude` - Patterns to exclude
51
+ - `--snapshot` - Include snapshot tests
52
+ - `--overwrite` - Overwrite existing files
32
53
 
33
54
  ### How Pre-commit Testing Works
34
55
  1. Run `npx test-gen-js init` in your project
package/README.md CHANGED
@@ -352,18 +352,65 @@ tgjs g src/components/Header.tsx -o __tests__/Header.test.tsx
352
352
  tgjs g src/components/Header.tsx --overwrite
353
353
  ```
354
354
 
355
- ### `scan` (alias: `s`) - Coming in v0.2.0
355
+ ### `scan` (alias: `s`)
356
356
 
357
- Scan directory and generate tests for all files
357
+ Scan directory and generate tests for all files at once.
358
358
 
359
359
  ```bash
360
- # Basic usage
361
- test-gen-js scan <directory>
360
+ # Basic usage - scan entire src folder
361
+ test-gen-js scan src
362
+ tgjs s src
362
363
 
363
364
  # Options
364
365
  --dry-run # Preview without creating files
365
366
  --pattern <glob> # File pattern (default: **/*.{ts,tsx,js,jsx})
366
367
  --exclude <patterns> # Patterns to exclude
368
+ --snapshot # Include snapshot tests
369
+ --overwrite # Overwrite existing test files
370
+ ```
371
+
372
+ **Examples:**
373
+
374
+ ```bash
375
+ # Preview what will be generated (no files created)
376
+ tgjs scan src --dry-run
377
+
378
+ # Generate tests for all components in src/components
379
+ tgjs scan src/components
380
+
381
+ # Generate tests with snapshots
382
+ tgjs scan src --snapshot
383
+
384
+ # Overwrite existing test files
385
+ tgjs scan src --overwrite
386
+
387
+ # Custom pattern (only .tsx files)
388
+ tgjs scan src --pattern "**/*.tsx"
389
+ ```
390
+
391
+ **Output example:**
392
+
393
+ ```
394
+ 🔍 Scanning directory: /your-project/src
395
+ 📝 Pattern: **/*.{ts,tsx,js,jsx}
396
+ 🚫 Exclude: node_modules/**, dist/**, **/*.test.*, ...
397
+
398
+ 📦 Processing files...
399
+
400
+ [1/5] ✅ components/Button.tsx → components/Button.test.tsx
401
+ [2/5] ✅ components/Card.tsx → components/Card.test.tsx
402
+ [3/5] ⏭️ components/index.ts (no components/functions)
403
+ [4/5] ✅ utils/helpers.ts → utils/helpers.test.ts
404
+ [5/5] ❌ utils/broken.ts: Parse error
405
+
406
+ ══════════════════════════════════════════════════
407
+ 📊 Summary
408
+ ══════════════════════════════════════════════════
409
+ Total files: 5
410
+ Created: 3
411
+ Updated: 0
412
+ Skipped: 1
413
+ Failed: 1
367
414
  ```
368
415
 
369
416
  ### `init`
@@ -505,9 +552,9 @@ git commit -m "feat: add new component"
505
552
  - [x] GitHub Actions CI/CD
506
553
  - [x] Automated npm publishing
507
554
 
508
- ### 🔜 Phase 2: Extended Features (v0.2.x)
555
+ ### Phase 2: Extended Features (v0.2.x) - Current
509
556
 
510
- - [ ] Directory scanning and batch generation (`scan` command)
557
+ - [x] Directory scanning and batch generation (`scan` command)
511
558
  - [x] Configuration file support (`.testgenrc.js`)
512
559
  - [x] Git hooks for pre-commit testing (`init` command)
513
560
  - [ ] Node.js backend support
@@ -1 +1 @@
1
- {"version":3,"file":"componentAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/componentAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAChE,QAAQ,EAAE,MAAM,GACf,aAAa,GAAG,IAAI,CAgDtB"}
1
+ {"version":3,"file":"componentAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/componentAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAChE,QAAQ,EAAE,MAAM,GACf,aAAa,GAAG,IAAI,CAgDtB"}
@@ -36,12 +36,8 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  return result;
37
37
  };
38
38
  })();
39
- var __importDefault = (this && this.__importDefault) || function (mod) {
40
- return (mod && mod.__esModule) ? mod : { "default": mod };
41
- };
42
39
  Object.defineProperty(exports, "__esModule", { value: true });
43
40
  exports.analyzeComponent = analyzeComponent;
44
- const traverse_1 = __importDefault(require("@babel/traverse"));
45
41
  const t = __importStar(require("@babel/types"));
46
42
  const typeExtractor_1 = require("../parser/typeExtractor");
47
43
  /**
@@ -172,17 +168,38 @@ function extractHooks(node) {
172
168
  const body = t.isBlockStatement(node.body) ? node.body : null;
173
169
  if (!body)
174
170
  return [];
175
- (0, traverse_1.default)(body, {
176
- CallExpression(path) {
177
- if (t.isIdentifier(path.node.callee)) {
178
- const name = path.node.callee.name;
179
- if (name.startsWith('use')) {
180
- hooks.add(name);
171
+ // Use recursive walk instead of traverse to avoid scope issues
172
+ findHooks(body, hooks);
173
+ return Array.from(hooks);
174
+ }
175
+ /**
176
+ * Recursively find hook calls in a node
177
+ */
178
+ function findHooks(node, hooks) {
179
+ // Check if this is a hook call
180
+ if (t.isCallExpression(node)) {
181
+ if (t.isIdentifier(node.callee)) {
182
+ const name = node.callee.name;
183
+ if (name.startsWith('use')) {
184
+ hooks.add(name);
185
+ }
186
+ }
187
+ }
188
+ // Recursively check all child nodes
189
+ const keys = t.VISITOR_KEYS[node.type] || [];
190
+ for (const key of keys) {
191
+ const child = node[key];
192
+ if (Array.isArray(child)) {
193
+ for (const c of child) {
194
+ if (c && typeof c === 'object' && 'type' in c) {
195
+ findHooks(c, hooks);
181
196
  }
182
197
  }
183
- },
184
- }, undefined, { node: body });
185
- return Array.from(hooks);
198
+ }
199
+ else if (child && typeof child === 'object' && 'type' in child) {
200
+ findHooks(child, hooks);
201
+ }
202
+ }
186
203
  }
187
204
  /**
188
205
  * Extract event handler props (onPress, onClick, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"componentAnalyzer.js","sourceRoot":"","sources":["../../src/analyzer/componentAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentAnalyzer.js","sourceRoot":"","sources":["../../src/analyzer/componentAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -153,24 +153,41 @@ async function analyzeDirectory(_dirPath, _options) {
153
153
  * Check if a function/arrow function is a React component
154
154
  */
155
155
  function isReactComponent(node) {
156
- let hasJSX = false;
157
- // Check if the function body contains JSX
156
+ // Arrow function with direct JSX return
157
+ if (t.isJSXElement(node.body) || t.isJSXFragment(node.body)) {
158
+ return true;
159
+ }
160
+ // Check if the function body contains JSX using recursive walk
158
161
  if (t.isBlockStatement(node.body)) {
159
- // Function with block body
160
- (0, traverse_1.default)(node.body, {
161
- JSXElement() {
162
- hasJSX = true;
163
- },
164
- JSXFragment() {
165
- hasJSX = true;
166
- },
167
- }, undefined, { node });
162
+ return containsJSX(node.body);
163
+ }
164
+ return false;
165
+ }
166
+ /**
167
+ * Recursively check if a node contains JSX elements
168
+ */
169
+ function containsJSX(node) {
170
+ if (t.isJSXElement(node) || t.isJSXFragment(node)) {
171
+ return true;
168
172
  }
169
- else if (t.isJSXElement(node.body) || t.isJSXFragment(node.body)) {
170
- // Arrow function with direct JSX return
171
- hasJSX = true;
173
+ // Recursively check all child nodes
174
+ const keys = t.VISITOR_KEYS[node.type] || [];
175
+ for (const key of keys) {
176
+ const child = node[key];
177
+ if (Array.isArray(child)) {
178
+ for (const c of child) {
179
+ if (c && typeof c === 'object' && 'type' in c && containsJSX(c)) {
180
+ return true;
181
+ }
182
+ }
183
+ }
184
+ else if (child && typeof child === 'object' && 'type' in child) {
185
+ if (containsJSX(child)) {
186
+ return true;
187
+ }
188
+ }
172
189
  }
173
- return hasJSX;
190
+ return false;
174
191
  }
175
192
  /**
176
193
  * Detect the framework based on imports
@@ -1 +1 @@
1
- {"version":3,"file":"fileAnalyzer.js","sourceRoot":"","sources":["../../src/analyzer/fileAnalyzer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,kCAoGC;AAKD,4CAMC;AAjID,+DAAuC;AACvC,gDAAkC;AAClC,gDAAwB;AACxB,sCAAsC;AACtC,2DAAuD;AACvD,yDAAqD;AAUrD;;GAEG;AACI,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,IAAA,kBAAS,EAAC,YAAY,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,kBAAkB;IAClB,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,iBAAiB,CAAC,QAAQ;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvD,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzB,CAAC;gBACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9E,CAAC;gBACD,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnC,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM;gBACN,UAAU;gBACV,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;aAC/E,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,mCAAmC;IACnC,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,wBAAwB;QACxB,mBAAmB,CAAC,QAAQ;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACnC,MAAM,UAAU,GACd,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEhD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,MAAM,aAAa,GAAG,IAAA,oCAAgB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/D,IAAI,aAAa,EAAE,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,IAAA,kCAAe,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC7D,IAAI,YAAY,EAAE,CAAC;oBACjB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,kBAAkB,CAAC,QAAQ;YACzB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC9C,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpG,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAEpC,oBAAoB;YACpB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,CAAC;YAChD,MAAM,UAAU,GACd,mBAAmB;gBACnB,CAAC,CAAC,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,CAAC;oBACrD,CAAC,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE9D,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,IAAA,oCAAgB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/D,IAAI,aAAa,EAAE,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,IAAA,kCAAe,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC7D,IAAI,YAAY,EAAE,CAAC;oBACjB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1D,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,QAAQ;QACR,SAAS;QACT,UAAU;QACV,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,QAAmD;IAEnD,qCAAqC;IACrC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAA8E;IAE9E,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,0CAA0C;IAC1C,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,2BAA2B;QAC3B,IAAA,kBAAQ,EACN,IAAI,CAAC,IAAI,EACT;YACE,UAAU;gBACR,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,WAAW;gBACT,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;SACF,EACD,SAAS,EACT,EAAE,IAAI,EAAE,CACT,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,wCAAwC;QACxC,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAqB;IAC5C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3E,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAA2B,EAAE,SAAyB;IAC/E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"fileAnalyzer.js","sourceRoot":"","sources":["../../src/analyzer/fileAnalyzer.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -14,7 +14,7 @@ const program = new commander_1.Command();
14
14
  program
15
15
  .name('test-gen-js')
16
16
  .description('Auto-generate test boilerplate code for JavaScript/TypeScript projects')
17
- .version('0.1.0');
17
+ .version('0.2.1');
18
18
  // Generate command
19
19
  program
20
20
  .command('generate <file>')
@@ -72,22 +72,22 @@ program
72
72
  .description('Scan directory and generate tests for all files')
73
73
  .option('--dry-run', 'Preview without creating files', false)
74
74
  .option('--pattern <glob>', 'File pattern to match', '**/*.{ts,tsx,js,jsx}')
75
- .option('--exclude <patterns...>', 'Patterns to exclude', ['node_modules', 'dist', '*.test.*', '*.spec.*'])
75
+ .option('--exclude <patterns...>', 'Patterns to exclude')
76
+ .option('--snapshot', 'Include snapshot tests', false)
77
+ .option('--overwrite', 'Overwrite existing test files', false)
76
78
  .action(async (directory, options) => {
77
- const spinner = (0, ora_1.default)('Scanning directory...').start();
78
79
  try {
79
- // TODO: Implement directory scanning
80
- spinner.info(chalk_1.default.yellow('Directory scanning is coming in v0.2.0'));
81
- console.log('');
82
- console.log(chalk_1.default.cyan('Directory:'), directory);
83
- console.log(chalk_1.default.cyan('Pattern:'), options.pattern);
84
- console.log(chalk_1.default.cyan('Exclude:'), options.exclude.join(', '));
85
- console.log(chalk_1.default.cyan('Dry run:'), options.dryRun);
80
+ await (0, commands_1.scanCommand)(directory, {
81
+ pattern: options.pattern,
82
+ exclude: options.exclude,
83
+ dryRun: options.dryRun,
84
+ snapshot: options.snapshot,
85
+ overwrite: options.overwrite,
86
+ });
86
87
  }
87
88
  catch (error) {
88
- spinner.fail(chalk_1.default.red('Failed to scan directory'));
89
89
  if (error instanceof Error) {
90
- console.error(chalk_1.default.red(error.message));
90
+ console.error(chalk_1.default.red('Error: ' + error.message));
91
91
  }
92
92
  process.exit(1);
93
93
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@
2
2
  * Commands module
3
3
  */
4
4
  export { initCommand } from './init';
5
+ export { scanCommand } from './scan';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
@@ -3,7 +3,9 @@
3
3
  * Commands module
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.initCommand = void 0;
6
+ exports.scanCommand = exports.initCommand = void 0;
7
7
  var init_1 = require("./init");
8
8
  Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
9
+ var scan_1 = require("./scan");
10
+ Object.defineProperty(exports, "scanCommand", { enumerable: true, get: function () { return scan_1.scanCommand; } });
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Scan Command
3
+ * Scans a directory and generates tests for all components/functions
4
+ */
5
+ import type { GeneratedTest } from '../types';
6
+ interface ScanOptions {
7
+ pattern?: string;
8
+ exclude?: string[];
9
+ dryRun?: boolean;
10
+ snapshot?: boolean;
11
+ overwrite?: boolean;
12
+ }
13
+ interface ScanResult {
14
+ total: number;
15
+ created: number;
16
+ updated: number;
17
+ skipped: number;
18
+ failed: number;
19
+ files: GeneratedTest[];
20
+ errors: Array<{
21
+ file: string;
22
+ error: string;
23
+ }>;
24
+ }
25
+ /**
26
+ * Scan a directory and generate tests for all files
27
+ */
28
+ export declare function scanCommand(directory: string, options?: ScanOptions): Promise<ScanResult>;
29
+ export default scanCommand;
30
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhE,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CA0JrB;AAYD,eAAe,WAAW,CAAC"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ /**
3
+ * Scan Command
4
+ * Scans a directory and generates tests for all components/functions
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.scanCommand = scanCommand;
11
+ const fs_extra_1 = __importDefault(require("fs-extra"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const ora_1 = __importDefault(require("ora"));
15
+ const glob_1 = require("glob");
16
+ const analyzer_1 = require("../analyzer");
17
+ const generator_1 = require("../generator");
18
+ /**
19
+ * Scan a directory and generate tests for all files
20
+ */
21
+ async function scanCommand(directory, options = {}) {
22
+ const { pattern = '**/*.{ts,tsx,js,jsx}', exclude = [
23
+ 'node_modules/**',
24
+ 'dist/**',
25
+ 'build/**',
26
+ '**/*.test.*',
27
+ '**/*.spec.*',
28
+ '**/__tests__/**',
29
+ '**/__mocks__/**',
30
+ '**/coverage/**',
31
+ ], dryRun = false, snapshot = false, overwrite = false, } = options;
32
+ const cwd = process.cwd();
33
+ const targetDir = path_1.default.resolve(cwd, directory);
34
+ // Check if directory exists
35
+ if (!(await fs_extra_1.default.pathExists(targetDir))) {
36
+ throw new Error(`Directory not found: ${targetDir}`);
37
+ }
38
+ console.log('');
39
+ console.log(chalk_1.default.cyan('🔍 Scanning directory:'), targetDir);
40
+ console.log(chalk_1.default.cyan('📝 Pattern:'), pattern);
41
+ console.log(chalk_1.default.cyan('🚫 Exclude:'), exclude.join(', '));
42
+ if (dryRun) {
43
+ console.log(chalk_1.default.yellow('⚠️ Dry run mode - no files will be created'));
44
+ }
45
+ console.log('');
46
+ // Find all matching files
47
+ const spinner = (0, ora_1.default)('Finding files...').start();
48
+ const files = await (0, glob_1.glob)(pattern, {
49
+ cwd: targetDir,
50
+ ignore: exclude,
51
+ absolute: true,
52
+ nodir: true,
53
+ });
54
+ spinner.succeed(`Found ${files.length} files`);
55
+ if (files.length === 0) {
56
+ console.log(chalk_1.default.yellow('No files found matching the pattern.'));
57
+ return {
58
+ total: 0,
59
+ created: 0,
60
+ updated: 0,
61
+ skipped: 0,
62
+ failed: 0,
63
+ files: [],
64
+ errors: [],
65
+ };
66
+ }
67
+ // Process each file
68
+ const result = {
69
+ total: files.length,
70
+ created: 0,
71
+ updated: 0,
72
+ skipped: 0,
73
+ failed: 0,
74
+ files: [],
75
+ errors: [],
76
+ };
77
+ console.log('');
78
+ console.log(chalk_1.default.cyan('📦 Processing files...'));
79
+ console.log('');
80
+ for (let i = 0; i < files.length; i++) {
81
+ const file = files[i];
82
+ const relativePath = path_1.default.relative(cwd, file);
83
+ const progress = `[${i + 1}/${files.length}]`;
84
+ try {
85
+ // Analyze the file
86
+ const analysis = await (0, analyzer_1.analyzeFile)(file);
87
+ // Skip files with no components or functions
88
+ if (analysis.components.length === 0 && analysis.functions.length === 0) {
89
+ console.log(chalk_1.default.gray(`${progress} ⏭️ ${relativePath} (no components/functions)`));
90
+ result.skipped++;
91
+ continue;
92
+ }
93
+ // Generate test (or preview in dry-run mode)
94
+ if (dryRun) {
95
+ const testPath = getTestFilePath(file);
96
+ const exists = await fs_extra_1.default.pathExists(testPath);
97
+ console.log(chalk_1.default.blue(`${progress} 👁️ ${relativePath}`) +
98
+ chalk_1.default.gray(` → ${path_1.default.relative(cwd, testPath)}`) +
99
+ (exists ? chalk_1.default.yellow(' (exists)') : chalk_1.default.green(' (new)')));
100
+ result.files.push({
101
+ code: '',
102
+ outputPath: testPath,
103
+ sourcePath: file,
104
+ action: exists ? 'skipped' : 'created',
105
+ });
106
+ }
107
+ else {
108
+ const generatorOptions = {
109
+ snapshot,
110
+ overwrite,
111
+ mock: true,
112
+ };
113
+ const testResult = await (0, generator_1.generateTest)(analysis, generatorOptions);
114
+ result.files.push(testResult);
115
+ const icon = testResult.action === 'created' ? '✅' : testResult.action === 'updated' ? '🔄' : '⏭️';
116
+ const color = testResult.action === 'created' ? chalk_1.default.green : testResult.action === 'updated' ? chalk_1.default.blue : chalk_1.default.gray;
117
+ console.log(color(`${progress} ${icon} ${relativePath}`) +
118
+ chalk_1.default.gray(` → ${path_1.default.relative(cwd, testResult.outputPath)}`));
119
+ if (testResult.action === 'created')
120
+ result.created++;
121
+ else if (testResult.action === 'updated')
122
+ result.updated++;
123
+ else
124
+ result.skipped++;
125
+ }
126
+ }
127
+ catch (error) {
128
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
129
+ console.log(chalk_1.default.red(`${progress} ❌ ${relativePath}: ${errorMessage}`));
130
+ result.failed++;
131
+ result.errors.push({ file: relativePath, error: errorMessage });
132
+ }
133
+ }
134
+ // Summary
135
+ console.log('');
136
+ console.log(chalk_1.default.cyan('═'.repeat(50)));
137
+ console.log(chalk_1.default.cyan('📊 Summary'));
138
+ console.log(chalk_1.default.cyan('═'.repeat(50)));
139
+ console.log(` Total files: ${result.total}`);
140
+ console.log(chalk_1.default.green(` Created: ${result.created}`));
141
+ console.log(chalk_1.default.blue(` Updated: ${result.updated}`));
142
+ console.log(chalk_1.default.gray(` Skipped: ${result.skipped}`));
143
+ console.log(chalk_1.default.red(` Failed: ${result.failed}`));
144
+ console.log('');
145
+ if (dryRun) {
146
+ console.log(chalk_1.default.yellow('💡 This was a dry run. Run without --dry-run to create files.'));
147
+ console.log('');
148
+ }
149
+ return result;
150
+ }
151
+ /**
152
+ * Get test file path for a source file
153
+ */
154
+ function getTestFilePath(sourcePath) {
155
+ const ext = path_1.default.extname(sourcePath);
156
+ const baseName = path_1.default.basename(sourcePath, ext);
157
+ const dirName = path_1.default.dirname(sourcePath);
158
+ return path_1.default.join(dirName, `${baseName}.test${ext}`);
159
+ }
160
+ exports.default = scanCommand;
161
+ //# sourceMappingURL=scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "test-gen-js",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Auto-generate test boilerplate code for JavaScript/TypeScript, React, and React Native projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",