- **Integration Tests**:
- Introduced `api-integration.test.ts` to validate API functionality:
- Verifies text insertion, vector embedding generation, and search operations.
- Confirms HNSW index correctness for vector similarity search.
- Ensures no dimensional mismatches in embeddings.
- **Test Server**:
- Added test server utilizing Express for endpoint simulation (`/insert` and `/search/text`).
- **Dependencies**:
- Introduced `express` and `node-fetch` as new dependencies for testing purposes.
- **Vitest Fix**:
- Updated `vitest.config.ts` to resolve the `process.memoryUsage` error by setting `logHeapUsage: false`.
- **Package Updates**:
- Modified `package-lock.json` to include newly added dependencies and updates.
**Purpose**: Guarantees the stability of core API endpoints and vector-related functionality, ensuring reliable behavior for end-to-end scenarios.
1.3 KiB
Fix for "process.memoryUsage is not a function" Error
Issue
During test runs with Vitest, the following error was occurring:
TypeError: process.memoryUsage is not a function
❯ VitestTestRunner.onAfterRunSuite node_modules/vitest/dist/runners.js:150:95
This error was happening because Vitest was trying to use process.memoryUsage() to log heap usage statistics, but this function was not available in the current environment.
Solution
The issue was fixed by disabling the heap usage logging in the Vitest configuration:
In vitest.config.ts, changed:
// Show test statistics
logHeapUsage: true,
To:
// Show test statistics
logHeapUsage: false,
Explanation
The logHeapUsage option in Vitest attempts to use Node.js's process.memoryUsage() function to track and report memory usage during test runs. However, this function might not be available in all environments, particularly in certain browser-like environments or when using specific Node.js versions or configurations.
By setting logHeapUsage: false, we prevent Vitest from attempting to call this function, which resolves the error while still allowing tests to run successfully.
Verification
After making this change, the tests run without any unhandled errors, confirming that the issue has been resolved.