mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-08-28 05:25:25 +00:00
* fix(ingestion): recover worker parse stalls Made-with: Cursor * test(ingestion): cover worker timeout controls Made-with: Cursor * docs: document analyze worker timeout controls Made-with: Cursor * fix(ingestion): fail fast after worker pool hard failure Made-with: Cursor * test(ingestion): stabilize worker stall recovery tests Made-with: Cursor --------- Co-authored-by: GitNexus Maintainer <maintainer@gitnexus.local>
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { afterEach, describe, expect, it } from 'vitest';
|
|
import { resolveWorkerPoolOptions } from '../../src/core/ingestion/workers/worker-pool.js';
|
|
|
|
const ORIGINAL_TIMEOUT = process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS;
|
|
const ORIGINAL_MAX_BYTES = process.env.GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES;
|
|
|
|
describe('resolveWorkerPoolOptions', () => {
|
|
afterEach(() => {
|
|
if (ORIGINAL_TIMEOUT === undefined) {
|
|
delete process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS;
|
|
} else {
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS = ORIGINAL_TIMEOUT;
|
|
}
|
|
|
|
if (ORIGINAL_MAX_BYTES === undefined) {
|
|
delete process.env.GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES;
|
|
} else {
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES = ORIGINAL_MAX_BYTES;
|
|
}
|
|
});
|
|
|
|
it('reads worker timeout and byte budget from environment variables', () => {
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS = '5000';
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES = '4096';
|
|
|
|
const options = resolveWorkerPoolOptions();
|
|
|
|
expect(options.subBatchIdleTimeoutMs).toBe(5000);
|
|
expect(options.subBatchMaxBytes).toBe(4096);
|
|
});
|
|
|
|
it('prefers explicit options over environment variables', () => {
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS = '5000';
|
|
process.env.GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES = '4096';
|
|
|
|
const options = resolveWorkerPoolOptions({
|
|
subBatchIdleTimeoutMs: 7000,
|
|
subBatchMaxBytes: 8192,
|
|
});
|
|
|
|
expect(options.subBatchIdleTimeoutMs).toBe(7000);
|
|
expect(options.subBatchMaxBytes).toBe(8192);
|
|
});
|
|
});
|