2022-10-12 12:45:37 +08:00
|
|
|
import assert from "node:assert/strict";
|
|
|
|
|
import { describe, it } from "node:test";
|
2023-12-17 19:34:12 +00:00
|
|
|
import { URLSearchParams } from "node:url";
|
2026-09-23 13:09:48 +08:00
|
|
|
import getFormattedDate from "../get-formatted-date.js";
|
2022-10-12 12:45:37 +08:00
|
|
|
import { getReleaseUrl } from "../steps/show-instructions-after-npm-publish.js";
|
|
|
|
|
|
|
|
|
|
const RELEASE_URL_BASE = "https://github.com/prettier/prettier/releases/new?";
|
|
|
|
|
const getExpectedReleaseUrl = (parameters) => {
|
|
|
|
|
parameters = new URLSearchParams(parameters);
|
|
|
|
|
return `${RELEASE_URL_BASE}${parameters}`;
|
|
|
|
|
};
|
|
|
|
|
|
2026-09-23 13:09:48 +08:00
|
|
|
const getDateParts = () => {
|
|
|
|
|
const { year, month, day } = getFormattedDate();
|
|
|
|
|
return [year, month, day];
|
|
|
|
|
};
|
2022-10-12 12:45:37 +08:00
|
|
|
|
|
|
|
|
describe("publish-to-npm", () => {
|
|
|
|
|
describe("getReleaseUrl", () => {
|
|
|
|
|
it("returns URL for patch releasing", () => {
|
|
|
|
|
const result = getReleaseUrl("2.3.1", "2.3.0");
|
|
|
|
|
assert.equal(
|
|
|
|
|
result,
|
|
|
|
|
getExpectedReleaseUrl({
|
|
|
|
|
tag: "2.3.1",
|
|
|
|
|
title: "2.3.1",
|
2026-04-15 09:17:38 +08:00
|
|
|
body: "🔗 [Changelog](https://github.com/prettier/prettier/blob/2.3.1/CHANGELOG.md#231)",
|
2022-10-12 12:45:37 +08:00
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("returns URL for minor releasing", () => {
|
|
|
|
|
const result = getReleaseUrl("2.4.0", "2.3.0");
|
|
|
|
|
assert.equal(
|
|
|
|
|
result,
|
|
|
|
|
getExpectedReleaseUrl({
|
|
|
|
|
tag: "2.4.0",
|
|
|
|
|
title: "2.4.0",
|
|
|
|
|
body: [
|
|
|
|
|
"[diff](https://github.com/prettier/prettier/compare/2.3.0...2.4.0)",
|
|
|
|
|
`🔗 [Release note](https://prettier.io/blog/${getDateParts().join(
|
|
|
|
|
"/",
|
2025-02-10 03:16:50 +01:00
|
|
|
)}/2.4.0)`,
|
2022-10-12 12:45:37 +08:00
|
|
|
].join("\n\n"),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("returns URL for major releasing", () => {
|
|
|
|
|
const result = getReleaseUrl("2.3.0", "2.2.0");
|
|
|
|
|
assert.equal(
|
|
|
|
|
result,
|
|
|
|
|
getExpectedReleaseUrl({
|
|
|
|
|
tag: "2.3.0",
|
|
|
|
|
title: "2.3.0",
|
|
|
|
|
body: [
|
|
|
|
|
"[diff](https://github.com/prettier/prettier/compare/2.2.0...2.3.0)",
|
|
|
|
|
`🔗 [Release note](https://prettier.io/blog/${getDateParts().join(
|
|
|
|
|
"/",
|
2025-02-10 03:16:50 +01:00
|
|
|
)}/2.3.0)`,
|
2022-10-12 12:45:37 +08:00
|
|
|
].join("\n\n"),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|