2.4 KiB
2.4 KiB
Plan for adding single file and glob pattern execution support to tstest
!! FIRST: Reread /home/philkunz/.claude/CLAUDE.md to ensure following all guidelines !!
Goal - ✅ COMPLETED
- ✅ Make
tstest test/test.abc.ts
run the specified file directly - ✅ Support glob patterns like
tstest test/*.spec.ts
ortstest test/**/*.test.ts
- ✅ Maintain backward compatibility with directory argument
Current behavior - UPDATED
- ✅ tstest now supports three modes: directory, single file, and glob patterns
- ✅ Directory mode now searches recursively using
**/test*.ts
pattern - ✅ Single file mode runs a specific test file
- ✅ Glob mode runs files matching the pattern
Completed changes
1. ✅ Update cli argument handling in index.ts
- ✅ Detect argument type: file path, glob pattern, or directory
- ✅ Check if argument contains glob characters (*, **, ?, [], etc.)
- ✅ Pass appropriate mode to TsTest constructor
- ✅ Added TestExecutionMode enum
2. ✅ Modify TsTest constructor and class
- ✅ Add support for three modes: directory, file, glob
- ✅ Update constructor to accept pattern/path and mode
- ✅ Added executionMode property to track the mode
3. ✅ Update TestDirectory class
- ✅ Used
listFileTree
for glob pattern support - ✅ Used
SmartFile.fromFilePath
for single file loading - ✅ Refactored to support all three modes in
_init
method - ✅ Return appropriate file array based on mode
- ✅ Changed default directory behavior to recursive search
- ✅ When directory argument: use
**/test*.ts
pattern for recursive search - ✅ This ensures subdirectories are included in test discovery
- ✅ When directory argument: use
4. ✅ Test the implementation
- ✅ Created test file
test/test.single.ts
for single file functionality - ✅ Created test file
test/test.glob.ts
for glob pattern functionality - ✅ Created test in subdirectory
test/subdir/test.sub.ts
for recursive search - ✅ Tested with existing test files for backward compatibility
- ✅ Tested glob patterns:
test/test.*.ts
works correctly - ✅ Verified that default behavior now includes subdirectories
Implementation completed
- ✅ CLI argument type detection implemented
- ✅ TsTest class supports all three modes
- ✅ TestDirectory handles files, globs, and directories
- ✅ Default pattern changed from
test*.ts
to**/test*.ts
for recursive search - ✅ Comprehensive tests added and all modes verified