Date: November 14, 2025 Version: 0.3.0 Status: Unable to generate full coverage report (Jest worker memory issues)
- concurrency.test.ts - 30 tests (WAL, retry, WriteQueue)
- Database.test.ts - 80+ tests (CRUD, transactions, export/import)
- Database-merge.test.ts - 33 tests (mergeNode, mergeEdge, indexes)
- NodeQuery.test.ts - 70+ tests (fluent API, filtering, pagination)
- Transaction.test.ts - 20 tests (commit, rollback, savepoints)
- NodeQuery-both-direction.test.ts - 9 tests (bidirectional queries)
- TraversalQuery-paths.test.ts - 11 tests (path finding)
- job-pipeline.test.ts - 13 integration tests
- validation.test.ts - 24 tests (type validation, schema)
- TraversalQuery.test.ts - FAIL (Jest worker out of memory)
- graph-operations.test.ts - FAIL (Jest worker terminated)
Total: 294 tests passing (Jest worker crashes prevent full run)
src/
├── core/
│ ├── Database.ts ✅ Well tested (80+ tests)
│ ├── Schema.ts ⚠️ Coverage unknown
│ └── Transaction.ts ✅ Well tested (20 tests)
├── query/
│ ├── NodeQuery.ts ✅ Well tested (79+ tests)
│ └── TraversalQuery.ts ⚠️ Memory issue prevents coverage
├── utils/
│ ├── concurrency.ts ✅ Well tested (30 tests)
│ ├── serialization.ts ⚠️ Coverage unknown
│ └── validation.ts ✅ Well tested (24 tests)
└── types/
└── merge.ts ⚠️ Type definitions (no tests needed)
Based on test structure and source files:
| File | Tests | Estimated Coverage | Status |
|---|---|---|---|
| Database.ts | 80+ | ~90% | ✅ GOOD |
| NodeQuery.ts | 79+ | ~95% | ✅ EXCELLENT |
| Transaction.ts | 20 | ~85% | ✅ GOOD |
| concurrency.ts | 30 | ~90% | ✅ GOOD |
| validation.ts | 24 | ~80% | ✅ GOOD |
| TraversalQuery.ts | 11+ | ~60%? | |
| Schema.ts | 0 direct | ~40%? | |
| serialization.ts | 0 direct | ~70%? | |
| merge.ts | N/A | N/A | ℹ️ Type definitions only |
Confidence: Medium - Based on test count and file complexity, not actual instrumentation data
FATAL ERROR: Ineffective mark-compacts near heap limit
Allocation failed - JavaScript heap out of memory
Affected:
- TraversalQuery.test.ts (hits memory limit during coverage run)
- graph-operations.test.ts (worker terminated)
Root Cause: Likely extensive graph traversal operations creating too many objects during coverage instrumentation
Impact: Cannot generate full lcov coverage report
# jest.config.js has coverage threshold:
coverageThreshold: {
global: {
branches: 80,
functions: 80,
lines: 80,
statements: 80
}
}Status: Cannot verify if thresholds are met due to memory crashes
- Used indirectly through Database tests
- Schema validation logic may not be fully covered
- Recommendation: Add direct Schema.test.ts
- Used in export/import operations
- Covered indirectly by Database.test.ts export/import tests
- Recommendation: Add edge case tests (malformed data, etc.)
- Has TraversalQuery-paths.test.ts (11 tests)
- Main TraversalQuery.test.ts crashes during coverage
- Recommendation: Fix memory leak or split tests
- Comprehensive CRUD testing - Database.test.ts covers all operations
- Edge case coverage - NodeQuery.test.ts has extensive edge case tests
- Integration testing - job-pipeline.test.ts validates real-world usage
- Transaction semantics - Transaction.test.ts covers commit/rollback/savepoints
- Merge operations - Database-merge.test.ts validates upsert behavior
- Concurrency - concurrency.test.ts covers WAL, retry, WriteQueue
- Schema validation - No direct Schema.ts tests
- Serialization edge cases - No direct serialization.ts tests
- TraversalQuery memory - Cannot complete coverage run
- Browser adapter - No tests for browser compatibility (work in progress)
- Increase Jest heap size:
NODE_OPTIONS=--max-old-space-size=4096 npm test - Split TraversalQuery.test.ts into smaller files
- Add
--maxWorkers=1 --workerIdleMemoryLimit=1GBto test script
- Add Schema.test.ts for direct schema validation testing
- Add serialization.test.ts for edge cases (circular refs, malformed JSON)
- Increase timeout for graph operations:
testTimeout: 60000
- Set up CI coverage reporting (Codecov, Coveralls)
- Add coverage badges to README
- Enforce coverage thresholds in CI pipeline
- Generate coverage reports that don't crash
Since full coverage crashes, use per-file coverage:
# Test individual files with coverage
npx jest tests/unit/Database.test.ts --coverage
npx jest tests/unit/NodeQuery.test.ts --coverage
npx jest tests/unit/concurrency.test.ts --coverage
# Skip memory-intensive tests
npx jest --coverage --testPathIgnorePatterns=TraversalQuery.test.tsTest Status: ✅ 294 passing tests, ❌ 2 suites with memory crashes
Estimated Coverage: ~75-80% (cannot verify due to instrumentation memory issues)
Core Functionality: Well tested (Database, NodeQuery, Transaction, concurrency)
Gaps: Schema, serialization edge cases, TraversalQuery memory issues
Production Ready? No - Memory crashes on coverage runs indicate potential production memory issues under load
Next Steps:
- Fix memory issues in TraversalQuery tests
- Add Schema and serialization direct tests
- Increase Jest heap size for coverage runs
- Set up CI coverage reporting