fix: require npm auth for dist-tag mirror

This commit is contained in:
Peter Steinberger
2026-03-31 23:13:35 +01:00
parent 4f83409345
commit d7e9d341cc
7 changed files with 152 additions and 4 deletions

View File

@@ -7,6 +7,7 @@ import {
parseNpmPackJsonOutput,
parseReleaseTagVersion,
parseReleaseVersion,
resolveNpmDistTagMirrorAuth,
resolveNpmPublishPlan,
resolveNpmCommandInvocation,
utcCalendarDayDistance,
@@ -116,6 +117,44 @@ describe("resolveNpmPublishPlan", () => {
});
});
describe("resolveNpmDistTagMirrorAuth", () => {
it("prefers NODE_AUTH_TOKEN when both auth env vars exist", () => {
expect(
resolveNpmDistTagMirrorAuth({
nodeAuthToken: "node-token",
npmToken: "npm-token",
}),
).toEqual({
hasAuth: true,
source: "node-auth-token",
});
});
it("falls back to NPM_TOKEN when NODE_AUTH_TOKEN is missing", () => {
expect(
resolveNpmDistTagMirrorAuth({
nodeAuthToken: " ",
npmToken: "npm-token",
}),
).toEqual({
hasAuth: true,
source: "npm-token",
});
});
it("reports missing auth when neither token exists", () => {
expect(
resolveNpmDistTagMirrorAuth({
nodeAuthToken: "",
npmToken: undefined,
}),
).toEqual({
hasAuth: false,
source: "none",
});
});
});
describe("compareReleaseVersions", () => {
it("treats stable as newer than same-day beta", () => {
expect(compareReleaseVersions("2026.3.29", "2026.3.29-beta.2")).toBe(1);