From 0a06057e1d4fedba2714e9f01d42f91e5fcaa394 Mon Sep 17 00:00:00 2001 From: Mark Skelton Date: Thu, 21 Mar 2024 13:27:44 -0500 Subject: [PATCH] More tests --- src/utils.ts | 3 +-- test/specs/outdated.test.ts | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index 5aae168..08f03cc 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,7 +1,6 @@ import { Manifest } from "@yarnpkg/core" import { fromUrl } from "hosted-git-info" import semver from "semver" -import { fn } from "typanion" export const truthy = Boolean as unknown as ( arg: T | undefined | null | false @@ -42,7 +41,7 @@ export function isVersionOutdated(current: string, latest: string) { const latestPrerelease = semver.prerelease(latest) const currentPrerelease = semver.prerelease(current) - if (latestPrerelease && currentPrerelease) { + if (semver.eq(current, latest) && latestPrerelease && currentPrerelease) { return semver.lt( parsePreRelease(currentPrerelease), parsePreRelease(latestPrerelease) diff --git a/test/specs/outdated.test.ts b/test/specs/outdated.test.ts index fb92ecf..cabe3f8 100644 --- a/test/specs/outdated.test.ts +++ b/test/specs/outdated.test.ts @@ -236,8 +236,15 @@ test("isVersionOutdated", () => { expect(isVersionOutdated("1.0.0", "1.0.1")).toBe(true) expect(isVersionOutdated("1.0.0", "1.0.1-rc.1")).toBe(true) + // Old pre-release expect(isVersionOutdated("1.0.0-rc.1", "1.0.0")).toBe(true) expect(isVersionOutdated("1.0.0-rc.1", "1.0.1")).toBe(true) expect(isVersionOutdated("1.0.0-rc.1", "1.0.0-rc.1")).toBe(false) expect(isVersionOutdated("1.0.0-rc.1", "1.0.0-rc.2")).toBe(true) + expect(isVersionOutdated("1.0.0-rc.1", "1.0.1-rc.1")).toBe(true) + + // Pre-release past the latest non-pre-release + expect(isVersionOutdated("1.0.1-rc.1", "1.0.0")).toBe(false) + expect(isVersionOutdated("1.0.1-rc.1", "1.0.0-rc.1")).toBe(false) + expect(isVersionOutdated("1.0.1-rc.1", "1.0.1-rc.1")).toBe(false) })