From 4e47bee77b05c16853274e3cafaabcf33d489f26 Mon Sep 17 00:00:00 2001 From: Tobias Soloschenko Date: Mon, 24 Jun 2024 13:32:26 +0200 Subject: [PATCH 1/2] feat: use branch prerelease property for detection --- lib/is-prerelease.js | 12 +++++++-- test/is-prerelease.test.js | 52 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 test/is-prerelease.test.js diff --git a/lib/is-prerelease.js b/lib/is-prerelease.js index 6eb91c16..3489e1b3 100644 --- a/lib/is-prerelease.js +++ b/lib/is-prerelease.js @@ -1,3 +1,11 @@ -export default function isPrerelease({ type, main }) { - return type === "prerelease" || (type === "release" && !main); +export default function isPrerelease({ type, main, prerelease }) { + if (typeof prerelease === "boolean" && prerelease === false) { + return false; + } + return ( + type === "prerelease" || + (type === "release" && !main) || + typeof prerelease == "string" || + prerelease === true + ); } diff --git a/test/is-prerelease.test.js b/test/is-prerelease.test.js new file mode 100644 index 00000000..8c2c60f1 --- /dev/null +++ b/test/is-prerelease.test.js @@ -0,0 +1,52 @@ +import test from "ava"; +import isPrerelease from "../lib/is-prerelease.js"; + +test("Test for empty object", (t) => { + const branch = {}; + t.is(isPrerelease(branch), false); +}); + +test("Test if prerelease true property as boolean is used correctly", (t) => { + const branch = { + prerelease: true, + }; + t.is(isPrerelease(branch), true); +}); + +test("Test if prerelease false property as boolean is used correctly", (t) => { + const branch = { + prerelease: false, + }; + t.is(isPrerelease(branch), false); +}); + +test("Test if prerelease property as string is used correctly", (t) => { + const branch = { + prerelease: "rc", + }; + t.is(isPrerelease(branch), true); +}); + +test("Test if prerelease type is used correctly", (t) => { + const branch = { + type: "prerelease", + }; + t.is(isPrerelease(branch), true); +}); + +test("Test if prerelease type and main is used correctly", (t) => { + const branch = { + type: "release", + main: false, + }; + t.is(isPrerelease(branch), true); +}); + +test("Test if prerelease type and main in addition to prerelease is used correctly", (t) => { + const branch = { + type: "release", + main: false, + prerelease: false, + }; + t.is(isPrerelease(branch), false); +}); From d7e352a35d794e9e58381446883d401c8e46abf2 Mon Sep 17 00:00:00 2001 From: Olabode Lawal-Shittabey Date: Mon, 1 Jul 2024 18:45:59 +0100 Subject: [PATCH 2/2] Update lib/is-prerelease.js Co-authored-by: Gregor Martynus <39992+gr2m@users.noreply.github.com> --- lib/is-prerelease.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/is-prerelease.js b/lib/is-prerelease.js index 3489e1b3..c04a7ba3 100644 --- a/lib/is-prerelease.js +++ b/lib/is-prerelease.js @@ -1,5 +1,5 @@ export default function isPrerelease({ type, main, prerelease }) { - if (typeof prerelease === "boolean" && prerelease === false) { + if (prerelease === false) { return false; } return (