mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-30 19:49:14 +00:00
40 lines
1.6 KiB
TypeScript
40 lines
1.6 KiB
TypeScript
/**
|
|
* Unit tests for buildWorkerArgs (issue #1815) — the supervisor → worker argv.
|
|
* Extracted from runSuperviseLoop so the --nice propagation is testable.
|
|
*/
|
|
|
|
import { describe, test, expect } from 'bun:test';
|
|
import { buildWorkerArgs } from '../src/core/minions/supervisor.ts';
|
|
|
|
describe('buildWorkerArgs', () => {
|
|
test('base args without nice or rss', () => {
|
|
expect(buildWorkerArgs({ concurrency: 2, queue: 'default', maxRssMb: 0 }))
|
|
.toEqual(['jobs', 'work', '--concurrency', '2', '--queue', 'default']);
|
|
});
|
|
|
|
test('includes --max-rss when > 0', () => {
|
|
expect(buildWorkerArgs({ concurrency: 4, queue: 'q', maxRssMb: 2048 }))
|
|
.toEqual(['jobs', 'work', '--concurrency', '4', '--queue', 'q', '--max-rss', '2048']);
|
|
});
|
|
|
|
test('appends --nice when nice_requested is set', () => {
|
|
expect(buildWorkerArgs({ concurrency: 2, queue: 'default', maxRssMb: 0, nice_requested: 10 }))
|
|
.toEqual(['jobs', 'work', '--concurrency', '2', '--queue', 'default', '--nice', '10']);
|
|
});
|
|
|
|
test('negative nice propagates', () => {
|
|
const args = buildWorkerArgs({ concurrency: 1, queue: 'q', maxRssMb: 512, nice_requested: -5 });
|
|
expect(args).toEqual(['jobs', 'work', '--concurrency', '1', '--queue', 'q', '--max-rss', '512', '--nice', '-5']);
|
|
});
|
|
|
|
test('nice 0 is explicit and still propagates (distinct from inherit)', () => {
|
|
expect(buildWorkerArgs({ concurrency: 1, queue: 'q', maxRssMb: 0, nice_requested: 0 }))
|
|
.toContain('--nice');
|
|
});
|
|
|
|
test('omits --nice when nice_requested is undefined (inherit)', () => {
|
|
expect(buildWorkerArgs({ concurrency: 1, queue: 'q', maxRssMb: 0 }))
|
|
.not.toContain('--nice');
|
|
});
|
|
});
|