fix: harden release gate and page delivery
Memind CI / Test, build, and release guards (push) Failing after 12m3s
Memind CI / Test, build, and release guards (push) Failing after 12m3s
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
|
||||
import { parseRunnerArgs, runWithConcurrency } from './runner.mjs';
|
||||
|
||||
test('runner accepts a bounded suite concurrency and rejects unsafe values', () => {
|
||||
assert.equal(
|
||||
parseRunnerArgs(['node', 'runner', '--suite-concurrency', '3']).suiteConcurrency,
|
||||
3,
|
||||
);
|
||||
assert.throws(
|
||||
() => parseRunnerArgs(['node', 'runner', '--suite-concurrency', '0']),
|
||||
/between 1 and 16/,
|
||||
);
|
||||
assert.throws(
|
||||
() => parseRunnerArgs(['node', 'runner', '--suite-concurrency', '17']),
|
||||
/between 1 and 16/,
|
||||
);
|
||||
});
|
||||
|
||||
test('runWithConcurrency preserves result order and never exceeds its worker budget', async () => {
|
||||
let active = 0;
|
||||
let peak = 0;
|
||||
const results = await runWithConcurrency([40, 5, 20, 1], 2, async (delay, index) => {
|
||||
active += 1;
|
||||
peak = Math.max(peak, active);
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
active -= 1;
|
||||
return `result-${index}`;
|
||||
});
|
||||
assert.deepEqual(results, ['result-0', 'result-1', 'result-2', 'result-3']);
|
||||
assert.equal(peak, 2);
|
||||
});
|
||||
Reference in New Issue
Block a user