36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
import { assertSupportedRuntime } from './verify-runtime.mjs';
|
|
|
|
test('只接受 Node 22 与 pnpm 10', () => {
|
|
assert.doesNotThrow(() =>
|
|
assertSupportedRuntime({ nodeVersion: '22.11.0', pnpmVersion: '10.25.0' }),
|
|
);
|
|
|
|
for (const nodeVersion of ['20.20.2', '24.0.0']) {
|
|
assert.throws(
|
|
() => assertSupportedRuntime({ nodeVersion, pnpmVersion: '10.25.0' }),
|
|
new RegExp(`Node\\.js 必须为 22\\.x,实际 ${nodeVersion.replaceAll('.', '\\.')}`),
|
|
);
|
|
}
|
|
|
|
for (const pnpmVersion of ['9.15.0', '11.0.0']) {
|
|
assert.throws(
|
|
() => assertSupportedRuntime({ nodeVersion: '22.11.0', pnpmVersion }),
|
|
new RegExp(`pnpm 必须为 10\\.x,实际 ${pnpmVersion.replaceAll('.', '\\.')}`),
|
|
);
|
|
}
|
|
});
|
|
|
|
test('拒绝无法解析的运行时版本', () => {
|
|
for (const runtime of [
|
|
{ nodeVersion: '', pnpmVersion: '10.25.0' },
|
|
{ nodeVersion: 'v22', pnpmVersion: '10.25.0' },
|
|
{ nodeVersion: '22.11.0', pnpmVersion: '' },
|
|
{ nodeVersion: '22.11.0', pnpmVersion: 'ten' },
|
|
]) {
|
|
assert.throws(() => assertSupportedRuntime(runtime), /版本格式无效/);
|
|
}
|
|
});
|