39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { test } from "node:test";
|
|
import { extractReleaseNotes } from "../scripts/release-notes.mjs";
|
|
|
|
const changelog = [
|
|
"# Changelog",
|
|
"",
|
|
"## Unreleased",
|
|
"",
|
|
"### Added",
|
|
"",
|
|
"- Add grouped API helpers.",
|
|
"",
|
|
"## 0.3.0 - 2026-04-27",
|
|
"",
|
|
"### Changed",
|
|
"",
|
|
"- Improve setup.",
|
|
"",
|
|
].join("\n");
|
|
|
|
test("release notes can render unreleased draft notes", () => {
|
|
assert.equal(
|
|
extractReleaseNotes({ changelogText: changelog, version: "Unreleased" }),
|
|
["## plugin-inspector unreleased", "", "### Added", "", "- Add grouped API helpers.", ""].join("\n"),
|
|
);
|
|
});
|
|
|
|
test("release notes can render versioned changelog sections", () => {
|
|
assert.equal(
|
|
extractReleaseNotes({ changelogText: changelog, version: "0.3.0" }),
|
|
["## plugin-inspector v0.3.0", "", "### Changed", "", "- Improve setup.", ""].join("\n"),
|
|
);
|
|
});
|
|
|
|
test("release notes fail when a version section is missing", () => {
|
|
assert.throws(() => extractReleaseNotes({ changelogText: changelog, version: "9.9.9" }), /missing a 9\.9\.9/);
|
|
});
|