44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const path = require('node:path');
|
|
const { pathToFileURL } = require('node:url');
|
|
|
|
const releasePlanUrl = pathToFileURL(path.resolve(__dirname, '../scripts/release-plan.mjs')).href;
|
|
|
|
test('release planning rejects omitted or blank English release notes', async () => {
|
|
const { parseReleaseArgs } = await import(releasePlanUrl);
|
|
|
|
assert.throws(
|
|
() => parseReleaseArgs(['2.1.20', '--transport-tag', 'v2.1.20']),
|
|
/English release notes are required/
|
|
);
|
|
assert.throws(
|
|
() => parseReleaseArgs(['2.1.20', '--transport-tag', 'v2.1.20', ' ']),
|
|
/English release notes are required/
|
|
);
|
|
});
|
|
|
|
test('release planning preserves dual-host asset names with English release notes', async () => {
|
|
const { createReleasePlan, parseReleaseArgs } = await import(releasePlanUrl);
|
|
const plan = createReleasePlan(parseReleaseArgs([
|
|
'2.1.20',
|
|
'--transport-tag',
|
|
'v2.1.20',
|
|
'Security hardening and reliability fixes.'
|
|
]));
|
|
|
|
assert.equal(plan.releaseBody, 'Security hardening and reliability fixes.');
|
|
assert.deepEqual(plan.expectedArtifacts, [
|
|
'Multi-Hoster-Upload Setup 2.1.20.exe',
|
|
'Multi-Hoster-Upload 2.1.20.exe',
|
|
'Multi-Hoster-Upload Setup 2.1.20.exe.blockmap',
|
|
'latest.yml'
|
|
]);
|
|
assert.deepEqual(plan.githubExpectedArtifacts, [
|
|
'Multi-Hoster-Upload.Setup.2.1.20.exe',
|
|
'Multi-Hoster-Upload.2.1.20.exe',
|
|
'Multi-Hoster-Upload.Setup.2.1.20.exe.blockmap',
|
|
'latest.yml'
|
|
]);
|
|
});
|