fix: isolate artifact rebuild from release suites
Memind CI / Test, build, and release guards (push) Has been cancelled
Memind CI / Test, build, and release guards (push) Has been cancelled
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
|
||||
import { parseRunnerArgs, runWithConcurrency } from './runner.mjs';
|
||||
import { parseRunnerArgs, runSuitesWithConcurrency, runWithConcurrency } from './runner.mjs';
|
||||
|
||||
test('runner accepts a bounded suite concurrency and rejects unsafe values', () => {
|
||||
assert.equal(
|
||||
@@ -31,3 +31,24 @@ test('runWithConcurrency preserves result order and never exceeds its worker bud
|
||||
assert.deepEqual(results, ['result-0', 'result-1', 'result-2', 'result-3']);
|
||||
assert.equal(peak, 2);
|
||||
});
|
||||
|
||||
test('exclusive suites finish before parallel suites start', async () => {
|
||||
const events = [];
|
||||
const results = await runSuitesWithConcurrency(
|
||||
[
|
||||
{ id: 'mutating', exclusive: true },
|
||||
{ id: 'parallel-a' },
|
||||
{ id: 'parallel-b' },
|
||||
],
|
||||
2,
|
||||
async (suite) => {
|
||||
events.push(`start:${suite.id}`);
|
||||
await new Promise((resolve) => setTimeout(resolve, 5));
|
||||
events.push(`end:${suite.id}`);
|
||||
return suite.id;
|
||||
},
|
||||
);
|
||||
assert.deepEqual(results, ['mutating', 'parallel-a', 'parallel-b']);
|
||||
assert.ok(events.indexOf('end:mutating') < events.indexOf('start:parallel-a'));
|
||||
assert.ok(events.indexOf('end:mutating') < events.indexOf('start:parallel-b'));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user