140 lines
3.7 KiB
Markdown
140 lines
3.7 KiB
Markdown
# Test Commands - Quick Reference
|
|
|
|
## Run Tests by Category
|
|
|
|
```bash
|
|
npm run test:all # All tests (61 files across 8 categories)
|
|
npm run test:promo # Promotion/coupon tests (13 files)
|
|
npm run test:satloc # SatLoc partner integration (13 files)
|
|
npm run test:job # Job processing (9 files)
|
|
npm run test:payment # Payment & billing (4 files)
|
|
npm run test:dlq # Dead Letter Queue (3 files)
|
|
npm run test:parsing # Log parsing (7 files)
|
|
npm run test:integration # Integration tests (2 files)
|
|
npm run test:utils # Utility tests (9 files)
|
|
```
|
|
|
|
## Run Single Test
|
|
|
|
```bash
|
|
npm run test:single tests/promo/test_promo_details.js
|
|
# OR
|
|
node tests/promo/test_promo_details.js
|
|
```
|
|
|
|
## Run with Options
|
|
|
|
```bash
|
|
npm run test:verbose # Show all output (not just failures)
|
|
npm run test:bail # Stop on first failure
|
|
|
|
# Custom patterns
|
|
npm run test:file 'promo/test_priority*.js'
|
|
node tests/run_all_tests.js --pattern 'job/test_*.js' --verbose
|
|
```
|
|
|
|
## Understanding Results
|
|
|
|
### Exit Codes
|
|
- **0** = Test PASSED ✅
|
|
- **1** = Test FAILED ❌
|
|
|
|
### Output Format
|
|
```
|
|
✅ PASSED: test_name.js (1234ms) # Success
|
|
❌ FAILED: test_name.js (5678ms) # Failure
|
|
```
|
|
|
|
### Summary
|
|
```
|
|
📊 TEST SUMMARY
|
|
✅ Passed: 10/13 # 10 passed out of 13 total
|
|
❌ Failed: 3/13 # 3 failed
|
|
⏱️ Total Duration: 72.00s # Total time
|
|
```
|
|
|
|
## When Tests Fail
|
|
|
|
1. **Check output preview** (shows last 5 lines of error)
|
|
2. **Run with verbose**: `npm run test:verbose`
|
|
3. **Run single test**: `node tests/category/test_file.js`
|
|
4. **Check services**: MongoDB, Redis, RabbitMQ running?
|
|
5. **Verify env vars**: Stripe keys, API credentials correct?
|
|
|
|
## Common Failures
|
|
|
|
| Error | Cause | Fix |
|
|
|-------|-------|-----|
|
|
| Exit code 1 | Test logic failed | Check assertions in test file |
|
|
| ECONNREFUSED | Service not running | Start MongoDB/Redis/RabbitMQ |
|
|
| 401 Unauthorized | Invalid credentials | Check environment.env |
|
|
| ENOTFOUND | DNS/network issue | Check internet connection |
|
|
| Rate limit | Too many API calls | Add delays between calls |
|
|
|
|
## Debugging Commands
|
|
|
|
```bash
|
|
# See full output for failing test
|
|
node tests/dlq/test_dlq_routes.js
|
|
|
|
# Run one category with verbose output
|
|
node tests/run_all_tests.js --pattern 'payment/test_*.js' --verbose
|
|
|
|
# Stop on first failure to save time
|
|
npm run test:bail
|
|
```
|
|
|
|
## Test File Naming
|
|
|
|
- `test_*.js` - Regular tests (included in runs)
|
|
- `*.spec.js` - Mocha tests (run separately with `npm test`)
|
|
- `manual_*.js` - Manual scripts (excluded from test runs)
|
|
|
|
## Environment
|
|
|
|
Tests use `environment.env` by default:
|
|
```bash
|
|
# Use different environment
|
|
node tests/run_all_tests.js --env ./environment_prod.env
|
|
```
|
|
|
|
## Test Categories Summary
|
|
|
|
| Category | Files | Description |
|
|
|----------|-------|-------------|
|
|
| promo | 13 | Promotion codes, coupons, validation |
|
|
| satloc | 13 | Partner integration, log parsing, API sync |
|
|
| job | 9 | Job processing, queueing, uploads |
|
|
| utils | 9 | Helper functions, utilities |
|
|
| parsing | 7 | Log file parsing, data extraction |
|
|
| payment | 4 | Stripe integration, subscriptions |
|
|
| dlq | 3 | Dead letter queue management |
|
|
| integration | 2 | Cross-feature integration tests |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 1. Run all tests to see overall status
|
|
npm run test:all
|
|
|
|
# 2. Run specific category if failures
|
|
npm run test:promo
|
|
|
|
# 3. Debug individual test
|
|
node tests/promo/test_promo_details.js
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Tests are **integration tests** (not unit tests)
|
|
- Connect to **real services** (MongoDB, Stripe, RabbitMQ)
|
|
- Require services to be **running and accessible**
|
|
- Each test runs in **separate process** (isolated)
|
|
- Results based on **exit codes** (0 = pass, non-zero = fail)
|
|
|
|
## More Info
|
|
|
|
- Complete guide: `docs/TEST_RUNNER_GUIDE.md`
|
|
- Test organization: `TESTS_ORGANIZED.md`
|
|
|