Files
ltdrdata-ComfyUI-Impact-Pack/tests/README.md
T
Dr.Lt.DataandClaude 9da76f839c fixed: Wildcard system bugs - pattern matching and config paths
- Fixed __*/pattern__ not matching wildcards at any directory depth
- Fixed config.py to handle quoted paths in impact-pack.ini
- Fixed empty line filtering in wildcards.py
- Added comprehensive test suite (86 tests) and documentation

Closes https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/1133

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 23:42:53 +09:00

137 lines
4.2 KiB
Markdown

# Wildcard System Test Suite
Comprehensive test suite for ComfyUI Impact Pack wildcard system.
## Test Suites
### test_encoding.sh (15 tests)
**Purpose**: UTF-8 multi-language encoding validation
**Port**: 8198
**Coverage**:
- Korean Hangul characters
- Emoji support
- Chinese characters
- Arabic RTL text
- Mathematical and currency symbols
- Mixed multi-language content
- UTF-8 in dynamic prompts, quantifiers, multi-select
### test_error_handling.sh (10 tests)
**Purpose**: Graceful error handling verification
**Port**: 8197
**Coverage**:
- Non-existent wildcards
- Circular reference detection (max 100 iterations)
- Malformed syntax
- Deep nesting without crashes
- Multiple circular references
### test_edge_cases.sh (20 tests)
**Purpose**: Edge case and boundary condition validation
**Port**: 8196
**Coverage**:
- Empty lines and whitespace filtering
- Very long lines (>1000 characters)
- Special characters preservation
- Case-insensitive matching
- Comment line filtering
- Pattern matching (__*/name__)
- Quantifiers (N#__wildcard__)
- Complex syntax combinations
### test_deep_nesting.sh (17 tests)
**Purpose**: Transitive wildcard expansion and depth-agnostic pattern matching
**Port**: 8194
**Coverage**:
- 7-level transitive expansion (directory depth + file references)
- All depth levels (1-7) individually
- Mixed depth combinations
- Nesting with quantifiers and multi-select
- Nesting with weighted selection
- Depth-agnostic pattern matching (`__*/name__`)
- Complex multi-wildcard prompts
### test_ondemand_loading.sh (8 tests)
**Purpose**: Progressive on-demand wildcard loading
**Port**: 8193
**Coverage**:
- Small cache (1MB) - on-demand enabled
- Moderate cache (10MB) - progressive loading
- Large cache (100MB) - eager loading
- Aggressive lazy loading (0.5MB)
- Balanced mode (50MB default)
- On-demand with deep nesting
- On-demand with multiple wildcards
- Cache boundary testing
### test_config_quotes.sh (5 tests)
**Purpose**: Configuration path handling validation
**Port**: 8192
**Coverage**:
- Unquoted paths
- Double-quoted paths
- Single-quoted paths
- Paths with spaces
- Mixed quote scenarios
### test_dynamic_prompts_full.sh (11 tests)
**Purpose**: Comprehensive dynamic prompt feature validation with statistical analysis
**Port**: 8188
**Coverage**:
- **Multiselect** (4 tests): 2-item, 3-item, single-item, max-item with separator validation
- **Weighted Selection** (5 tests): 10:1 ratio, equal weights, extreme bias, multi-level weights, default mixing
- **Basic Selection** (2 tests): Simple random, nested selection
- Statistical distribution verification (100+ iterations per test)
- Duplicate detection and item count validation
- Separator correctness validation
## Quick Start
```bash
# Run individual test
bash test_encoding.sh
# Run all tests
bash test_encoding.sh
bash test_error_handling.sh
bash test_edge_cases.sh
bash test_deep_nesting.sh
bash test_ondemand_loading.sh
bash test_config_quotes.sh
bash test_dynamic_prompts_full.sh
```
## Test Infrastructure
- **Configuration**: Each test creates `impact-pack.ini` with test wildcard path
- **Server Lifecycle**: Automatic server start/stop with dedicated ports
- **Cleanup**: Automatic cleanup on test completion
- **Logging**: Detailed logs in `/tmp/*_test.log`
## Test Samples
Located in `wildcards/samples/`:
- `아름다운색.txt` - Korean UTF-8 test with 12 symbolic colors
- `test_encoding_*.txt` - UTF-8 encoding test files
- `test_edge_*.txt` - Edge case test files
- `test_error_*.txt` - Error handling test files
- `test_nesting_*.txt` - Nesting test files (7 levels)
- `patterns/` - Subdirectory for pattern matching tests
## Status
✅ **86 tests, 100% pass rate** (15+10+20+17+8+5+11)
✅ **Production ready**
✅ **Complete PRD coverage**
✅ **On-demand loading validated**
✅ **Config quotes handling validated**
✅ **Dynamic prompts statistically validated**
✅ **Weighted selection verified (correct {weight::option} syntax)**
✅ **Pattern matching validated (depth-agnostic __*/name__)**
## Documentation
- [Wildcard System PRD](../docs/wildcards/WILDCARD_SYSTEM_PRD.md)
- [System Design](../docs/wildcards/WILDCARD_SYSTEM_DESIGN.md)
- [Testing Guide](../docs/wildcards/WILDCARD_TESTING_GUIDE.md)